这个月忙忙碌碌已快接近尾声,主要是公司的app进行项目重构以及UI升级。所以略作总结。
1、出现编译内存不够
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE [2016-03-02 17:00:11 - EGStarSplash] Please check logcat output for more details. [2016-03-02 17:00:11 - EGStarSplash] Launch failed on device: 0123456789ABCDEF
解决办法,肯定卸掉真机里面一些应用,包括你的app也卸载掉。
2、Android 如何在Java代码中手动设置控件的marginleft
a、定义LayoutParams
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);//定义一个LayoutParams
b、在LayoutParams中设置marginLeft
layoutParams.setMargins(20,0,0,0);//4个参数按顺序分别是左上右下
c、把这个LayoutParams设置给控件
mView.setLayoutParams(layoutParams); //mView是控件
其中说一下这里面的参数new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
如果是父相对布局,那么就是RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);//定义一个LayoutParams
最后补充一点:
FILL_PARENT,即填满(和父容器一样大小);
WRAP_CONTENT,即包裹住组件就好。
layoutParams.setMargins(20,0,0,0);设置都是像素值,单位px。
为了使用不同机子的分辨率,需要把dip转换成px设置进去。
mLayoutParams.setMargins(0, 0, 10, dip2px(this,54)); private static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); }
3、布局分隔线的问题
使用android:divider="@drawable/shape_divider2"
android:showDividers="beginning|end"
设置分割线间隔,有些时候能显示不出来end这条线是因为你设置子布局高度match_parent,
父布局又是50dp,就是不出来效果。这样你应该设置子布局49dp就出来了,如你的android:divider="@drawable/shape_divider2"是1dp的话。
4、基类activity的全局变量继承问题
android 写activity一般都是有一个先一个基础类activity。然后项目中所有activity都是继承这个基础的。
如果在定义全局变量,例如protected boolean mItemCanLongClick = true;
那么要在子类里面,初始化改变这个值。一定要在前面才有效果。
// Item是否支持长按
super.mItemCanLongClick = false;
super.onCreate(savedInstanceState);
5、滚动条的隐藏,包括listview
Android Listview 隐藏滚动条在<ListView>标签中设置属性。
android:fastScrollEnabled="false"
以下属性scrollbars可以设置为none也可以不设置为none。效果会有点不同。根据具体情况决定是否设置为none。
android:scrollbars="none"
6、xml设置背景边框颜色,幅度,背景颜色
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="@color/white" /> <stroke android:width="1dip" android:color="@color/title_bar_bk_color" /> <padding android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp" /> </shape>
7、xml设置button或者布局点击效果
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/ui_blue_buttom_select_color" android:state_pressed="true"></item> <item android:drawable="@color/ui_blue_buttom_color" android:state_enabled="false"></item> <item android:drawable="@color/ui_blue_buttom_color" android:state_enabled="true"></item> </selector>
8、android里TextView加下划线
tvTest.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线 tvTest.getPaint().setAntiAlias(true);//抗锯齿
UI的升级,一定要找出共性的界面,或者很多有类似界面,进行统一重构后,继承就能不断复用,便于后面的新功能添加以及维护。还有一定要再三跟UI设计师确定升级方案。不然后面修改又是你。哈哈。。。