Android如何自定义视图属性

作者:u011771755 时间:2021-11-23 04:27:39 

本文实例为大家介绍了Android自定义视图属性的方法,供大家参考,具体内容如下

1. 自定义一个自己的视图类继承自View


public class MyView extends View
{
 public MyView(Context context, AttributeSet attrs)
 {
   super(context, attrs);
   //获取到自定义的属性
   TypedArray ta=context.obtainStyledAttributes(attrs, R.styleable.MyView);
   int color=ta.getColor(R.styleable.MyView_rect_color, 0xffff0000);
   setBackgroundColor(color);
   //必须手动回收ta
   ta.recycle();
 }

public MyView(Context context)
 {
   super(context);
 }
}

2. 在res/values目录中新建一个attrs.xml文件


<?xml version="1.0" encoding="utf-8"?>
<resources>
 //定义一个declare-styleable标签,在里面设置attr属性
 <declare-styleable name="MyView">
   <attr name="rect_color" format="color"/>
 </declare-styleable>
</resources>

一个attr属性,对应了一个视图属性

3.最后看布局文件中如何利用我们创建的自定义视图并设置其属性


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 //自定义一个MyView的命名空间
 xmlns:gu="http://schemas.android.com/apk/res/com.gu.myrect"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

<com.gu.myrect.MyView
   android:layout_width="100dp"
   android:layout_height="100dp"
   //根据自定义的命名空间和我们在attrs中设置的属性,自定义属性值
   gu:rect_color="#cc99cc" />
</LinearLayout>
标签:Android,自定义,视图,属性
0
投稿

猜你喜欢

  • springboot 如何取消starter的自动注入

    2023-02-06 21:31:05
  • Mybatis中的@Select、foreach用法

    2023-06-05 00:07:20
  • Android XRecyclerView实现多条目加载

    2021-10-15 07:32:21
  • 带你了解Java中Static关键字的用法

    2021-11-07 15:04:32
  • C#实现最完整的文件和目录操作类实例

    2022-05-19 09:38:51
  • C#序列化与反序列化实例

    2023-05-05 21:05:27
  • java 数据结构之删除链表中的元素实例代码

    2022-03-28 00:51:11
  • ShardingSphere解析SQL示例详解

    2023-11-23 13:57:55
  • 基于idea Maven中的redis配置使用详解

    2023-11-29 11:57:28
  • SpringBoot创建maven多模块项目实战代码

    2023-11-11 04:05:32
  • 浅析Spring Boot单体应用熔断技术的使用

    2022-05-10 02:37:08
  • c语言轻松实现猜数字小游戏

    2021-10-21 23:42:13
  • Java字符串的intern方法有何奥妙之处

    2022-07-21 13:38:16
  • Android编程设计模式之中介者模式详解

    2022-04-05 21:13:03
  • Spring中Bean的生命周期使用解析

    2021-09-06 23:06:54
  • 详解spring boot 使用application.properties 进行外部配置

    2023-02-13 02:09:11
  • Maven分模块开发执行指令失败的问题

    2021-07-10 19:00:15
  • Java线程的基本概念

    2022-05-20 16:30:22
  • Unity实现单机游戏每日签到系统

    2023-05-13 08:42:36
  • C#多线程及同步示例简析

    2022-02-25 22:12:43
  • asp之家 软件编程 m.aspxhome.com