HardBirch

Android自定义View之一:初探实例

时间:11-04-11 栏目:安卓学习笔记 作者:张飞不张,文采横飞 评论:7 点击: 3,177 次

Android自定义View实现很简单

继承View,重写构造函数、onDraw,(onMeasure)等函数。

 

如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml。在其中定义你的属性。

 

在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://schemas.android.com/apk/res/你的自定义View所在的包路径".

在使用自定义属性的时候,使用前缀:属性名,如my:textColor="#FFFFFFF"。

 

实例:

 

相应的属性文件:

 

 

在布局文件中的使用:

 

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: Android自定义View之一:初探实例

Android自定义View之一:初探实例:目前有7 条留言

  1. 7楼
    Y080Y:

    自定义view是不是一定要有 public MyView(Context context, AttributeSet attrs){ 这个构造函数?如果没有自定义属性那么
    //——————————————————————–
    mPaint = new Paint();
    //TypedArray是一个用来存放由context.obtainStyledAttributes获得的属性的数组
    //在使用完成后,一定要调用recycle方法
    //属性的名称是styleable中的名称+“_”+属性名称
    TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);
    int textColor = array.getColor(R.styleable.MyView_textColor, 0XFF00FF00); //提供默认值,放置未指定
    float textSize = array.getDimension(R.styleable.MyView_textSize, 36);
    mPaint.setColor(textColor);
    mPaint.setTextSize(textSize);

    array.recycle(); //一定要调用,否则这次的设定会对下次的使用造成影响
    //——————————————————————–
    这段是否可以删除?

    2011-08-23 17:17 [回复]
  2. 6楼
    q412195581:

    帮忙问下为什么我在这里
    <demo.view.my.MyView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    my:textColor="#FFFFFFFF"
    my:textSize="22dp"
    />
    修改my:textColor和my:textSize的值是不起作用,字体和颜色都是onDraw方法中设置值

    2011-09-19 16:49 [回复]
  3. [reply]Y080Y[/reply]
    可以删除的,mPaint = new Paint()可以放到onDraw函数里

    2011-12-03 01:02 [回复]
  4. 推荐你看看:
    1、[url=http://orgcent.com/android-custom-view-draw-mechanism/]android自定义view–绘制顺序及相关原理[/url]
    2、[url=http://orgcent.com/android-imagespan-view-html/]Android自定义View实现HTML图文环绕效果[/url]
    3、[url=http://orgcent.com/android-custom-vertical-scroll-textview/]android自定义View-垂直滚动的TextView[/url]
    4、[url=http://orgcent.com/android-custom-view-text-wrap/]Android自定义view-文本自动换行[/url]

    2012-04-25 12:23 [回复]
  5. 地板
    manymore13:

    LZ注释很详细.. 学习了

    2012-06-18 11:53 [回复]
  6. 板凳
    NotOnlyForShe:

    吃果果的菜鸟,我可以说看不懂吗。。。。

    2012-07-12 17:00 [回复]
  7. 沙发
    aj_hui:

    你好,我是新新手,完全按照你的的介绍写的代码,run之后 提示“..has stopped..”不知道什么原因…你能帮我看看么?方便的话给留个邮箱可以吗..谢谢

    2012-09-26 16:38 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐