Android用户界面的设计方法心得,android ui界面设计的一些心得与问题解决

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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值