`

android自定义属性

阅读更多

 

1、自定义属性文件attrs.xml,放入values文件夹中---------attrs.xml

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
      <declare-styleable name="myView"> 
         <attr name="textColor" format="color"/> 
         <attr name="textSize" format="dimension"/> 
     </declare-styleable>
</resources>

 

 

2、自定义MyView类此类必须继承View基类 ------MyView.java

 

 

package cn.com.flyfot.attrs;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

public class MyView extends View {
        private static final String TAG = "MyView"; 
        private Paint mPaint; 
        public MyView(Context context) { 
            super(context); 
        } 
         
        public MyView(Context context, AttributeSet attr) { 
            super(context, attr); 
            mPaint = new Paint(); 
            //获取自定义属性
            TypedArray a = context.obtainStyledAttributes(attr, R.styleable.myView);
            //获取尺寸属性值,默认大小为:30
            float textSize = a.getDimension(R.styleable.myView_textSize, 30);
            //获取颜色属性值,默认颜色为:0x990000FF
            int textColor = a.getColor(R.styleable.myView_textColor, 0x990000FF);
            //设置画笔的尺寸和颜色
            mPaint.setTextSize(textSize); 
            mPaint.setColor(textColor); 
            //缓存属性,可以不设置,主要是为了提高效率
            a.recycle();
        } 
        @Override 
        protected void onDraw(Canvas canvas) { 
            super.onDraw(canvas); 
            canvas.drawRect(new Rect(10 ,10,300,300), mPaint); 
        } 
}

 

3、main.xml文件

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:flyfot="http://schemas.android.com/apk/res/cn.com.flyfot.attrs"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <!-- 设置属性 -->
   <cn.com.flyfot.attrs.MyView
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    flyfot:textSize="120px" 
    flyfot:textColor="#ABCDEFEF" 
    />

 

<!--
    注意引入命名空间:xmlns:flyfot="http://schemas.android.com/apk/res/cn.com.flyfot.attrs"
     -->
  
</LinearLayout>

 

 

备注:

系统在解析main.xml文件时,将实例化MyView类然后当前设置的属性上,就调用onDraw方法画到屏幕上去。

  • 大小: 7.4 KB
分享到:
评论

相关推荐

    Android 自定义属性及其引用

    本文将深入探讨Android自定义属性的创建、使用以及它们在实际项目中的应用。 首先,我们来了解自定义属性的定义。在Android中,自定义属性通常在资源XML文件的`&lt;declare-styleable&gt;`元素中定义。例如,假设我们要为...

    Android 自定义属性动画Demo

    本资源提供的"Android 自定义属性动画Demo"是为了帮助开发者更好地理解和应用这一技术。 属性动画系统在API 11(Android 3.0 Honeycomb)及更高版本中引入,它可以改变对象的属性并实时渲染这些变化,创建出平滑...

    android自定义属性(三种方法dome)

    在Android开发中,自定义属性是一项非常重要的技能,它能够帮助开发者实现个性化和高度定制的UI组件。本篇文章将深入探讨三种不同的自定义属性方法,并结合相关博客资源,以`Custom_TextView`为例进行详细解释。 一...

    Android自定义属性.txt

    Android自定义属性

    AttrTest android自定义属性

    在Android开发中,自定义属性(Custom Attributes)是提升应用可复用性和灵活...通过学习和实践这个简单的实例,你可以掌握Android自定义属性的基本用法,从而更好地定制你的应用程序,提高代码的可维护性和用户体验。

    Android自定义属性深入理解

    仿照系统TextView的自定义属性,以及讲解obtainStyledAttributes各个参数的用处,详情请见博客https://blog.csdn.net/qq_29951983/article/details/80219746

    android自定义属性控件

    以上内容涵盖了Android自定义属性控件的基本实现,包括自定义属性、自定义控件的绘制与交互,以及简单的Tab控件封装。通过这些技术,开发者可以构建出功能强大且具有个性化风格的Android应用。在实际项目中,还需要...

    Android自定义属性实现带边框效果的TextView

    Android自定义属性的使用就是解决此类问题的一种有效方法。本篇将深入探讨如何通过自定义属性来实现一个带边框效果的TextView。 首先,自定义属性是Android系统提供的一种扩展机制,允许开发者在组件中添加自己的...

    Android自定义属性百分比布局

    "Android自定义属性百分比布局"就是一种这样的技术,它允许我们在布局中使用子控件相对于父容器的百分比大小,从而实现响应式设计。下面我们将详细探讨这一主题。 首先,`PercentLayout`是Android支持的一种布局...

    android 自定义属性实现 ImageView 透明度渐变效果

    在Android开发中,自定义属性是提升应用独特性和用户体验的重要手段。本教程将详细讲解如何通过自定义属性来实现ImageView的透明度渐变效果。首先,我们从自定义属性的创建开始。 一、创建自定义属性 在Android项目...

    Android自定义属性

    在Android开发中,自定义属性是一种非常常见的技术,它允许开发者扩展系统提供的组件特性,创建具有独特功能和外观的自定义视图或者组件。通过自定义属性,开发者可以更好地控制UI设计,提升应用的用户体验。以下是...

    android 自定义view及自定义属性

    在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...

    自定义属性和反射的例子

    在.NET框架中,自定义属性(Custom Attributes)是一种元数据,可以附加到代码的各种元素上,如类、方法、字段等,提供额外的信息用于运行时的处理或代码分析。自定义属性增强了代码的可扩展性和灵活性,使得我们...

    android 重写控件添加自定义属性

    在Android开发中,有时我们需要对系统提供的控件进行扩展,以满足特定的需求,这就涉及到控件的重写和自定义属性的添加。本篇将详细讲解如何在Android中实现这一功能。 首先,我们要理解Android控件重写的基本原理...

    android 自定义控件 自定义属性详细介绍

    通过在该文件中声明自定义属性,我们可以为控件添加新的配置选项。以下是几种常见的属性类型及其用法: 1. **reference**: 这种类型用于引用已存在的资源ID,如颜色、图片等。例如: ```xml ``` 2. **color*...

    Android自定义属性 format的深入解析

    (1)属性定义: 代码如下: &lt;attr xss=removed xss=removed&gt;&lt;/declare&gt;(2)属性使用: 代码如下: &lt;ImageView xss=removed xss=removed xss=removed&gt;2. color:颜色值。(1)属性定义: 代码如下:&lt;decl

    Android 自定义View 之 自定义属性 demo 修改版

    本篇文章将深入探讨如何在Android中进行自定义View,并以"自定义属性demo修改版"为例,讲解如何添加和使用自定义属性。 首先,自定义属性是在Android资源文件中定义的,通常在res/values/attrs.xml中。在这个示例中...

    Android自定义Attr属性

    以下将详细介绍Android自定义Attr属性的使用过程及其背后的原理。 首先,自定义Attr涉及到的主要步骤包括:定义属性、在资源文件中声明属性、解析属性值以及在代码中使用属性。让我们逐一探讨这些步骤: 1. **定义...

    Android自定义菜单属性DEMO

    本DEMO,"Android自定义菜单属性DEMO",旨在教你如何为Android应用创建一个带有自定义属性的菜单按钮。这个教程是基于CSDN博主janice0529的一篇博客文章,你可以通过提供的链接获取详细的源码解析。 首先,我们要...

    Android自定义日期选择器源码

    博客文章“Android自定义日期选择器源码”可能详细介绍了以下关键点: 1. **自定义View组件**:创建一个新的`View`类,继承自`ViewGroup`,在这个类中,我们需要绘制日期选择器的所有元素,包括背景、网格线、日期...

Global site tag (gtag.js) - Google Analytics