android 颜色文件写法,Android - ToDoList(定制样式) 详解

本文详细介绍了如何在Android中创建一个名为ToDoListItemView的自定义TextView,用于定制待办事项列表项的外观。主要步骤包括:1) 继承TextView并重写构造函数及onDraw方法,实现绘制背景色、边框和线条;2) 在资源文件中定义颜色和尺寸;3) 创建布局文件使用自定义TextView;4) 修改适配器以使用自定义视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ToDoList(定制样式) 详解

本文地址: http://blog.youkuaiyun.com/caroline_wendy/article/details/21330733

Android允许从已有的视图工具箱(Widget Tool Box)派生子类 或 实现自己的视图控件;

通过重写事件处理程序 和onDraw()方法, 但是仍然回调超类(super)的方法, 可以对视图进行定制, 而不必实心它的功能;

前置步骤参见: http://blog.youkuaiyun.com/caroline_wendy/article/details/21246963

步骤:

1. 创建ToDoListItemView类, 定制Item项的外观:

位置: java->package->ToDoListItemView.java

package mzx.spike.todolist.app; import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; /** * Created by C.L.Wang on 14-3-16. */ public class ToDoListItemView extends TextView{ private Paint marginPaint; private Paint linePaint; private int paperColor; private float margin; public ToDoListItemView (Context context, AttributeSet ats, int ds) { super(context, ats, ds); init(); } public ToDoListItemView (Context context) { super(context); init(); } public ToDoListItemView (Context context, AttributeSet ats) { super(context, ats); init(); } private void init() { //获得对资源列表的引用 Resources myResources = getResources(); marginPaint = new Paint(Paint.ANTI_ALIAS_FLAG); marginPaint.setColor(myResources.getColor(R.color.notepad_margin)); linePaint = new Paint(Paint.ANTI_ALIAS_FLAG); linePaint.setColor(myResources.getColor(R.color.notepad_lines)); paperColor = myResources.getColor(R.color.notepad_paper); margin = myResources.getDimension(R.dimen.notepad_margin); } @Override public void onDraw(Canvas canvas) { canvas.drawColor(paperColor); canvas.drawLine(0, 0, 0, getMeasuredHeight(), linePaint); canvas.drawLine(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight(), linePaint); canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginPaint); canvas.save(); canvas.translate(margin, 0); super.onDraw(canvas); canvas.restore(); } }

详解:

1. 继承TextView类, 是文本视图的定制;

2. 重载构造函数, 包含三个参数的重载版本,回调超类(super)之后,初始化资源私有变量(init);

3. 在Init()中, 获得资源列表的引用(getResource), 将资源文件转换为可以调用的参数(myResource.getXXX), 初始化资源私有变量;

4. 重写(Override)OnDraw方法, 设置颜色, 画线, 指定写入格式;

5. canvas.translate(), 使输出文件, 后移margin距离;

2. 创建颜色(colors)资源文件

位置: res->values->colors.xml

<?xml version="1.0" encoding="utf-8"?> #EEF8E0A0#FF0000FF#90FF0000#AA0000FF

颜色资源文件, 以color标签, Android Studio会显示颜色;

3. 修改尺寸(dimen)资源文件:

位置: res->values->dimen.xml

16dp16dp30dp

补充即可;

4. 创建todolist_item布局文件:

位置: res->layout->todolist_item.xml

详解:

1. 标签为类名, 即ToDoListItemView类, 重载了TextView的方法;

2. 设置相应的属性标签;

5. 修改适配器(Adapter), 使用定制的TextView:

位置: java->package->ToDoListActivity

...... int resID = R.layout.todolist_item; //三个参数 aa = new ArrayAdapter(this, resID, toDoItems); toDoListFragment.setListAdapter(aa); ......

详解:

找到资源文件的ID, 传入适配器;

6. 执行程序: 代码下载: http://download.youkuaiyun.com/detail/u012515223/7050371

da35333077a1c55e50dd0fd9e82fa696.png

851b6e716e756b4b9c9a45f07635fd90.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值