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设计师确定升级方案。不然后面修改又是你。哈哈。。。

时间: 2024-10-15 02:23:39

android 公司app升级UI总结的相关文章

Android Tv app 与 mobile app 界面呈现的区别

公司的一个项目是android tv的谢了片日报总结:android tv app呈现ui 与手机app的区别 android tv  app和 mobile app 的主要区别在表现形式上 1.焦点移动的处理 从代码上可以明显看出到处都有对焦点获取的处理,这是mobile app所不需要的. 触摸屏与遥控的不同操作方式决定了:tv遥控操作方式在屏幕上是先获取焦点(遥控决定焦点移动)再获取点击,而mobile触摸方式是直接的点击获取与焦点获取一起通常只需要处理点击获取 2.布局边界处理 遥控操作

android产品研发(十四)--&gt;App升级与更新

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android app中的轮训操作,讲解的内容主要包括:我们在App中使用轮训操作的情景,作用以及实现方式等.一般而言我们使用轮训操作都是通过定时任务的形式请求服务器并更新用户界面,轮训操作都有一定的使用生命周期,即在一定的页面中启动轮操作,然后在特定的情况下关闭轮训操作,这点需要我们尤为注意,我们还介绍了使用Timer和Handler实现轮训操作的实例,更多关于App中轮训操作的信息,可参考我的:android产品研发(十三)–>App轮训

Android开发App工程结构搭建

本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的.      从艺术的角度看,其实我们是在追求一种美. 本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板.      1. 微盘      2. 久忆日记      3.网易新

Android最佳实践之UI

为多屏设计(一) - 支持多个屏幕尺寸 参考地址:http://developer.android.com/training/multiscreen/index.html Android UI设计提供了一个灵活的框架,允许应用程序为不同设备显示不同的布局,创建自定义UI部件,在App外部控制系统的Window. Android的设备尺寸参差不齐,从几寸的小手机到几十寸的TV设备,我们需要学会为这么多的设备做出适配让尽可能多的人有更好的体验.支持多个屏幕尺寸有以下几种方式: - 确保你的布局可以充

Cordova热更新和App升级 - 简书

原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇到了问题和解决办法. cordova项目热更新分为两个部分,网页内容(web content)更新和Cordova插件(native side)更新.前者是网页内容,后者是 cordova 插件.web content 的运行是基于 native side.如:登录页面的微信登录,需要在项目中集成微

Flutter项目之app升级方案

题接上篇的文章的项目,还是那个空货管理app.本篇文章用于讲解基于Flutter的app项目的升级方案. 在我接触Flutter之前,做过一个比较失败的基于DCloud的HTML5+技术的app,做过几个RN项目.在这两种不同机制的app升级方案中,RN采用的是微软的CodePush技术.而那个比较失败的项目采用的是检查版本号,下载安装包的方法.而在这个Flutter项目中,我在写app更新方法时,查资料的时候查到一篇文章,文章大概意思讲解了一下Flutter实行CodePush的可能性.但是,

【Android端 APP 启动时长获取】启动时长获取方案及具体实施

一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分配一个新的进程给应用. (2)热启动:程序的进程依然存在,启动时通过已有进程启动进入到Activity显示页面的,就是热启动,或者从Android官网来看我们获取到的其实是温启动时长,就是Activity不存在的情况. (3)新装包的启动时长: 新装包的启动时长,预估是最长的,并且在5.0以下及5.

基于微信红包插件的原理实现android任何APP自动发送评论(已开源)

背景 地址:https://github.com/huijimuhe/postman 核心就是android的AccessibilityService,回复功能api需要23以上版本才行. 其实很像在做单元测试.你可以有n种方式实现发帖功能,这只是一个比较邪火的方式,亲测过一次,可行.这里我以网易新闻客户端举例. 模拟你在手机端的物理动作:选择新闻->回复->退回新闻列表->进入下一个新闻->回复->退回新闻列表刷新->进入->回复.... 做的不精细,只是探究到

Android Wear - App Structure for Android Wear(应用结构)

原文地址:http://developer.android.com/design/wear/structure.html 用户习惯于点击图标来启动应用程序,但是Android Wear不一样.一个典型的Wear应用程序会在一个情境的合适时刻插入一张卡片到信息流中.这张卡片可能会包含一个用于快速交互的按钮来打开一个全屏视图(在一些情况下,卡片也可能不会提供交互按钮): 以下是简单排序的构建模块.你可以使用其中的一个或者多个模块,但是我们强烈推荐不要构建这样的应用:用户在启动或者退出应用之前必须仔细