Android用户界面的设计方法心得,android ui界面设计的一些心得与问题解决
1.把Button或者ImageButton的背景设为透明或者半透明:半透明透明其他透明度:在RGB的值前面加上数字(100以内),如#90436EEE(RGB为436EEE),#50436EEE,根据值的大小呈现不同的显示效果,值越小透明度越高。2.设置btn.setBackgroundResource(R.drawable.comment_sel);btn.setTextColor(getRe
1.把Button或者ImageButton的背景设为透明或者半透明:
半透明
透明
其他透明度:在RGB的值前面加上数字(100以内),如#90436EEE(RGB为436EEE),#50436EEE,根据值的大小呈现不同的显示效果,值越小透明度越高。
2.设置
btn.setBackgroundResource(R.drawable.comment_sel);
btn.setTextColor(getResources().getColor(R.color.blue));
3.文字换行:;(要加上分号).
4.布局时,不宜做过多的嵌套,否则容易报堆栈溢出异常。
5.9.png图片最好放在drawable-hdpi文件夹中,否则可能显示时可能会出现黑色的外边线。
6.android进程优先级:foreground Process(前台进程)>Visable Process(不在前端显示,但也没有完全隐藏,比如弹出一个对话框式的 Activity)>ServiceProcess>Background Process>Empty Process。
7.Android进程启动:PackageServiceàPackageManagerà加载manifest配置文件—>读取MAIN和LAUNCHERà映射类的实例。
8.TextView设置符号时(如问号),要在英文键盘环境下输入,否则会被显示为省略号。
9.EditText追加字符:
edit.append("0");
edit.getText().insert(edit.getSelectionStart(),"0");
10. EditText去掉默认的
11.weight的使用:weight的意义在于,对于父控件,若子控件能够完全显示,先分配没有设置weight的控件,对于有weight属性的控件,则根据weight的值等分布局的剩余部分。如右图:都采用RelativeLayout左中右布局,但是由于文字的字数不同结果出现第二个布局中文字换行。解决方法:对中间的TextView设置weight = 1;外层采用LinearLayout或其他都可以达到需要的效果。
12.转字符串时,优先选用String.valueOf。直接用toString时最好做一个非null判断。二者区别可参考
13.android工程中如果出现(所有的)资源找不到异常,可能是图片问题,检查9.png是否有问题。
14.对LinearLayout(或其他widget)整个控件设置onclick事件:
(1).XML中设置CliClickable=true(也可以不用设置,区别在于设置为true之后必须在代码中注册监听事件,否则点击后程序会崩溃),然后直接重写onClick方法;
(2)XML中设置onClick=”name(响应事件的名称)” ,在Activity中写一个name(View v)的方法执行点击后的操作。
15. dialog的WindowLeaked异常:
AlertDialogdialog = new AlertDialog.Builder(this);
dialog.show();
finish();
android 上的dialog.show不会阻塞调用线程(如UI线程),导致dialog尚未dismiss或者cancel之前,dialog所依赖的context被关闭,因此出现windowleaked。但是此问题并不影响程序继续运行。
解决办法:在dialog的OnClickListener事件中先dismiss(onClick中有一个DialogInterface参数,直接调用此DialogInterface的dismiss即可)后再finish activity(点击按钮时先调用dialog的dismiss()方法,然后调用Activity的finish()方法)。
16.
解决办法:在manifest.xml中对应的Activity设置 android:windowSoftInputMode="adjustPan";并且如果该xml中有ListView时,不能设置 android:fastScrollEnabled="true"android:focusable="true"(有待再次验证)。
17.若LinearLayout设置OnclickListener点击事件,则该LinearLayout中不宜放置Button
18. EditText的getText方法不会返回null(因此调用getText不必作mull判断)。
19.TextView设置字体粗体:
在
将中文设置成粗体的方法是:
TextView tv =(TextView)findViewById(R.id.TextView01);
TextPaint tp = tv.getPaint();
tp.setFakeBoldText(true);
20.TimePicker,DatePicker:根据键盘输入动态更新日期
使用TimePicker,DatePicker时无法屏蔽软键盘,因此用户可以通过键盘输入日期。
假设有一个确定
21.设置全屏 :
1)setContentView之前:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
2)自定义style:
更多推荐
所有评论(0)