Android - weight,patch图片,shape图形

如果线性布局是竖直的,View的高度=原有高度+线性布局剩余空间的占比

3.Android官方推荐,在使用android:layout_weight时,

如果线性布局是水平的,要将android:layout_width设置为0dp

如果线性布局是竖直的,要将android:layout_height设置为0dp

2.9patch图片(.9.png拼接图片)

1号黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域

2号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域

3号黑色条位置向左覆盖的区域表示图片纵向显示内容的区域

4号黑色条位置向上覆盖的区域表示图片横向显示内容的区域

3.shape图形

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android=“http://schemas.android.com/apk/res/android”

android:shape=[“rectangle” | “oval” | “line” | “ring”] >

<corners

android:radius=“integer”

android:topLeftRadius=“integer”

android:topRightRadius=“integer”

android:bottomLeftRadius=“integer”

android:bottomRightRadius=“integer” />

<solid

android:color=“color” />

<gradient

android:type=[“linear” | “radial” | “sweep”]

//linear 线性渐变,这是默认设置

//radial 放射性渐变,以开始色为中心

//sweep 扫描线式的渐变。

android:startColor=“color” //颜色值 起始颜色

android:endColor=“color” //颜色值 结束颜色

android:centerColor=“integer” //渐变中 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 间颜色,即开始颜色与结束颜色之间的颜色

android:angle=“integer” //渐变角度

android:centerX=“integer” //渐变中心X点坐标的相对位置

android:centerY=“integer” //渐变中心Y点坐标的相对位置

android:gradientRadius=“integer” //渐变色半径.当 android:type=“radial” 时才使用。单独使用 android:type="radial"会报错 />

<stroke

android:width=“integer”

android:color=“color”

android:dashWidth=“integer”

android:dashGap=“integer” />

<padding

android:left=“integer”

android:top=“integer”

android:right=“integer”

android:bottom=“integer” />

<size

android:width=“integer”

android:height=“integer” />

4.获取RadioGroup中被选中的条目

1.调用RadioGroup的getCheckedRadioButtonId方法

5.使用命令行查看数据库

1.sqlite3 mythmayor.db命令进入数据库模式

6.ListView空数据的处理

1.在布局文件中添加上空数据时的布局

2.在适配器的getCount方法中,根据数据是否为0,对空数据时的布局进行显示和隐藏

7.ListView的优化

1.复用历史缓存的view对象convertView,减少view对象创建的次数

2.使用ViewHolder保存子View引用,减少findViewById的次数

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view ;

ViewHolder holder;

//1.复用历史缓存的view对象convertView,减少view对象创建的次数

if(convertView==null){

view = View.inflate(CallSmsSafeActivity.this, R.layout.item_call_smssafe, null);

//2.ViewHolder保存子View引用

holder = new ViewHolder();

holder.tv_phone = (TextView) view.findViewById(R.id.tv_item_blacknumber);

holder.tv_mode = (TextView) view.findViewById(R.id.tv_item_mode);

holder.iv_delete = (ImageView) view.findViewById(R.id.iv_item_delete);

//ViewHolder保存到View对象里

view.setTag(holder);

}else{

view = convertView;

holder = (ViewHolder) view.getTag();

}

}

/**

  • view 的容器,用来存储子孩子的引用.

*/

class ViewHolder{

TextView tv_phone;

TextView tv_mode;

ImageView iv_delete;

}

8.加载大量数据的优化方法

1.初始化

1.1 在布局文件中加入进度条,加载数据之前显示进度条

1.2 加载数据放在子线程中,加载数据后隐藏进度条

1.3 调用runOnUiThread方法修改界面

2.非初始化

2.1 不再重新查找所有数据,仅添加单条数据到集合中

2.2 将需要的其他数据也添加到Intent中

2.2 添加单条数据到集合里,刷新界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值