Skip to content

Apk应用开发

名人名言:生而富者骄,生而贵者傲

多语言适配

  • 多国语言value文件夹命名方式
语言文件夹语言文件夹
中文(中国)values-zh-rCN法文(法国)values-fr-rFR
中文(香港)values-zh-rHK希伯来文values-iw-rIL
中文(台湾)values-zh-rTW印地文values-hi-rIN
英语(美国values-en-rUS克罗里亚文values-hr-rHR
英语(英国)values-en-rGB匈牙利文values-hu-rHU
英文(澳大利亚)values-en-rAU印度尼西亚文values-in-rID
英文(加拿大)values-en-rCA意大利文(瑞士)values-it-rCH
英文(爱尔兰)values-en-rIE意大利文(意大利)values-it-rIT
英文(印度)values-en-rIN日文values-ja-rJP
英文(新西兰)values-en-rNZ韩文values-ko-rKR
英文(新加坡)values-en-rSG立陶宛文valueslt-rLT
英文(南非)values-en-rZA拉脱维亚文values-lv-rLV
阿拉伯文(埃及)values-ar-rEG挪威博克马尔文values-nb-rNO
阿拉伯文(以色列)values-ar-rIL荷兰文(比利时)values-nl-BE
保加利亚文values-bg-rBG荷兰文(荷兰)values-nl-rNL
加泰罗尼亚文values-ca-rES波兰文values-pl-rPL
捷克文values-cs-rCZ葡萄牙文(巴西)values-pt-rBR
丹麦文values-da-rDK葡萄牙文(葡萄牙)values-pt-rPT
德文(奥地利)values-de-rAT罗马尼亚文values-ro-rRO
德文(瑞士)values-de-rCH俄文values-ru-rRU
德文(德国)values-de-rDE斯洛伐克文values-sk-rSK
德文(列支敦士登)values-de-rLI斯洛文尼亚文values-sl-rSI
希腊文values-el-rGR塞尔维亚文values-sr-rRS
西班牙文(西班牙)values-es-rES瑞典文values-sv-rSE
西班牙文(美国)values-es-rUS泰文values-th-rTH
芬兰文(芬兰)values-fi-rFI塔加洛语values-tl-rPH
法文(比利时)values-fr-rBE土耳其文values–r-rTR
法文(加拿大)values-fr-rCA乌克兰文values-uk-rUA
法文(瑞士)values-fr-rCH越南文values-vi-rVN

主题样式

  • Android中定义的系统主题样式
Style属性android:theme=*样式说明
theme="@android:style/Theme.Dialog"将Activity显示为对话框模式
theme="@android:style/Theme.NoTitleBar"不显示应用程序标题栏
theme="@android:style/Theme.NoTitleBar.Fullscreen"不显示应用程序标题栏,并全屏
theme="@android:style/Theme.Light"背景为白色
theme="@android:style/Theme.Light.NoTitleBar"白色背景并无标题栏
theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"白色背景,无标题栏,全屏
theme="@android:style/Theme.Black"背景黑色
theme="@android:style/Theme.Black.NoTitleBar"黑色背景并无标题栏
theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"黑色背景,无标题栏,全屏
theme="@android:style/Theme.Wallpaper"用系统桌面为APP背景
theme="@android:style/Theme.Wallpaper.NoTitleBar"用桌面为APP背景,且无标题栏
theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"桌面为APP背景,无标题栏全屏
theme="@android:style/Translucent"半透明效果
theme="@android:style/Theme.Translucent.NoTitleBar"半透明并无标题栏
theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"半透明效果,无标题栏,全屏
theme="@android:style/Theme.Panel"
  • Android系统中三种字体大小
xml
android:textSize="?android:attr/textAppearanceLarge"
android:textSize="?android:attr/textAppearanceMedium"
android:textSize="?android:attr/textAppearanceSmall"
  • Android系统中字体颜色定义
xml
android:textColor="?android:attr/textColorPrimary"
android:textColor="?android:attr/textColorSecondary"
android:textColor="?android:attr/textColorTertiary"
android:textColor="?android:attr/textColorPrimaryInverse"
android:textColor="?android:attr/textColorSecondaryInverse"
  • Android系统中ProgressBar样式
xml
style="?android:attr/progressBarStyleHorizontal"
style="?android:attr/progressBarStyleLarge"
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyleSmallTitle"
  • 其他更多Style
xml
style="?android:attr/starStyle"						#CheckBox样式
android:background="?android:attr/listDivider"		#分隔符
style="?android:attr/listSeparatorTextViewStyle"	#标题栏效果的TextView
<item name="android:background">#778899</item>
<item name="android:windowTitleSize">32dp</item>
<item name="android:windowTitleBackgroundStyle">@style/AutoWindowTitleBackground</item>

多形式弹窗

java
public void demo() {
	String[] item = new String[]{ "Item1", "Item2" };
	AlertDialog.Builder builder = new AlertDialog.Builder(this);
	builder.setTitle("我是标题");
	builder.setMessage("我是消息提示!");				//设置列表时需屏蔽消息提示
	//builder.setItems(item, null);						//列表Arg:items ClickListener
	//builder.setView(new EditText(this));				//自定义View简单演示编辑框,可使用LayoutInflater.from(this).inflate扩展
	//builder.setMultiChoiceItems(item, null, null);	//多选列表Arg:items checkedItems ClickListener
	//builder.setSingleChoiceItems(item, 0, null);		//单选列表Arg:items checkedItems ClickListener
	builder.setIcon(R.drawable.music);					//ICON
	builder.setNegativeButton("取消按钮", null);		
	//builder.setNeutralButton("中间按钮", null);
	builder.setPositiveButton("确定按钮", new DialogInterface.OnClickListener() {
		public void onClick(DialogInterface dialog, int which) {
			/*	ClickListener  Close  */
			dialog.dismiss();
		}
	});
	builder.create().show();		//创建显示
}

获取内存

  • 读取/proc/meminfo实现、第一行为总内存
  • /proc/cpuinfo为Cpu信息、版本/proc/version
java
public void getTotalMemory() {
	String str = "";  
	try {  
		FileReader fr = new FileReader("/proc/meminfo");
		BufferedReader bfReader = new BufferedReader(fr, 8192);
		/*	Single line Read	
		String[] list = bfReader.readLine().split("\\s+");
		for (String item : list) Log.i(TAG, "--->" + item);
		*/
		while ((str = bfReader.readLine()) != null) {
			Log.i(TAG, "--->" + str);
		}
	} catch (IOException e) {
	}
}
  • 通过ActivityManager服务获取内存
java
public void getAvailMemory() {
	ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);  
	ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();  
	am.getMemoryInfo(mi);  
	Log.i(TAG, "--->" + mi.availMem);  
}

获取ROM大小

java
public void getRomMemroy() {
	/* 
	* Sdcard If there is any
	* Environment.getExternalStorageDirectory()
	*/
	File path = Environment.getDataDirectory();  
	StatFs stat = new StatFs(path.getPath());  
	long blockSize = stat.getBlockSize();  
	long totalBlocks = stat.getBlockCount();  
	long size = totalBlocks * blockSize;   
	Log.i(TAG, "--->" + size);
	long availableBlocks = stat.getAvailableBlocks();
	long availableSize = blockSize * availableBlocks;
	Log.i(TAG, "--->" + availableSize);
}

电池电量

java
public void init() {
	registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
private BroadcastReceiver batteryReceiver = new BroadcastReceiver(){  
	public void onReceive(Context context, Intent intent) {  
		int level = intent.getIntExtra("level", 0);
		Log.i(TAG, "--->" + level + "%");
	}  
};

获取Mac地址

java
public void getWifiMacInfo(){  
	WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);  
	WifiInfo wifiInfo = wifiManager.getConnectionInfo();  
	if (wifiInfo.getMacAddress() != null) Log.i(TAG, "--->" + wifiInfo.getMacAddress());  
}

开机时间

java
private void getTimes() {  
	long ut = SystemClock.elapsedRealtime() / 1000;  
	if (ut == 0) ut = 1;
	int m = (int) ((ut / 60) % 60);  
	int h = (int) ((ut / 3600));  
	Log.i(TAG, "--->" + h + "h:" + m);  
}

Copyright © manosP . 2023