首页 > 代码库 > Android中的自定义视图控件
Android中的自定义视图控件
简介
当现有控件不能满足需求时,就需要自定义控件。
自定义控件属性
自定义控件首先要继承自View,重写两个构造函数。
第一个是代码中使用的:
public MyRect(Context context) { super(context); }
另一个是资源解析程序使用的:
public MyRect(Context context, AttributeSet attrs) { super(context, attrs); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MyView); int color = ta.getColor(R.styleable.MyView_rect_color, 0xff00ffff); setBackgroundColor(color); ta.recycle(); }
也可以给自定义控件指定属性,创建attrs.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="MyView"> <attr name="rect_color" format="color"/> </declare-styleable></resources>
然后就可以在layout文件中使用了:
<com.wanxiang.www.learncustomview.MyRect android:id="@+id/myrect" android:layout_width="100dp" android:layout_height="100dp" jkxy:rect_color="#FF000FFF"/>
自定义控件皮肤
可以给button等控件通过background属性设置背景,并根据控件的状态做出改变。定义background为一个xml:
<Button android:text="Button" android:background="@drawable/button_skin" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/button"/>
定义这个xml文件内容为:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:drawable="@drawable/btn_normal"></item> <item android:state_pressed="true" android:drawable="@drawable/btn_pressed"></item></selector>
即可以实现控件背景根据状态做出改变。
利用绘图API自定义视图
覆盖draw函数:
@Override public void draw(Canvas canvas) { super.draw(canvas); canvas.drawRect(0,0,500,500,paint); }
private void initproperties() {
paint = new Paint();
paint.setColor(Color.RED);
}
Android中的自定义视图控件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。