android 公司app升级UI总结

Posted mmsx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 公司app升级UI总结相关的知识,希望对你有一定的参考价值。

这个月忙忙碌碌已快接近尾声,主要是公司的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设计师确定升级方案。不然后面修改又是你。哈哈。。。


以上是关于android 公司app升级UI总结的主要内容,如果未能解决你的问题,请参考以下文章

公司app 从兼容Android 8.0 升级兼容9.0

Android系统recovery模式总结

Cordova 4.0 上的 Android 片段内的 Cordova webview

如何从 Android 中的 Fragment 访问 UI 元素?

在android studio中升级repo v9后,片段必须是公共静态类崩溃错误

Android开发——UI_片段