当前位置: 首页 > 编程笔记 >

Android如何自定义视图属性

百里修真
2023-03-14
本文向大家介绍Android如何自定义视图属性,包括了Android如何自定义视图属性的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家介绍了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 主要内容:前记,1.自定义视图,2.自定义异常,3.自定义异常的原理前记 在前面的文章中, 表示了视图解析的原理和异常解析器的解析原理。 这篇通过如何自定义视图和自定义异常处理和自定义异常处理的原理进行说明。 这里说明一下, 自定义的视图和自定义的异常都是会代替容器默认的组件的, 异常还好说, 就是不符合就抛, 视图的话需要注意一下优先级, 可以在自定义的视图解析器上加上注解。 1.自定义视图 这里原理就是添加一个视图和视图解析器, 然后放入容器中, 最后访问相应

  • 本文向大家介绍Android 创建自定义视图,包括了Android 创建自定义视图的使用技巧和注意事项,需要的朋友参考一下 示例 如果需要完全自定义的视图,则需要子类View(所有Android视图的超类),并提供自定义的sizing(onMeasure(...))和drawing(onDraw(...))方法: 创建您的自定义视图框架:每个自定义视图的基本相同。在这里,我们为自定义视图创建框架,

  • 我正在创建一个自定义的ImageView,它将我的图像裁剪成一个六边形形状,并添加一个边框。我想知道我的方法是正确的还是我的做法是错误的。有一堆自定义库已经这样做了,但没有一个开箱即用的形状,我正在寻找。话虽如此,这更多的是一个关于最佳实践的问题。 您可以在这个要点中看到完整的类,但主要问题是这是否是最好的方法。我觉得不对,部分原因是一些神奇的数字,这意味着它可能会在某些设备上搞砸。 下面是代码的

  • 英文原文:http://emberjs.com/guides/views/customizing-a-views-element 视图在页面上表现为一个单一的DOM元素。通过修改tagName属性,可以改变视图生成的元素的类型。 1 2 3 App.MyView = Ember.View.extend({ tagName: 'span' }); 另外,还可以通过设置一个字符串数组到clas

  • 问题内容: 我可以创建自定义属性并将其应用到normal ,如下所示: 我的问题:是否可以在不创建扩展类的情况下读取这些自定义属性的值?我的意思是,我想从我的中读取自定义属性,但是到目前为止,我所看到的示例要求我从自定义视图的构造函数中读取值 问题答案: 我的问题:是否可以在不创建扩展EditText的类的情况下读取那些自定义属性的值? 是的,您无需扩展类即可获取这些属性。为此,你可以使用一个特殊

  • 本文向大家介绍Android自定义控件之自定义属性(二),包括了Android自定义控件之自定义属性(二)的使用技巧和注意事项,需要的朋友参考一下 前言: 上篇介绍了自定义控件的基本要求以及绘制的基本原理,本篇文章主要介绍如何给自定义控件自定义一些属性。本篇文章将继续以上篇文章自定义圆形百分比为例进行讲解。有关原理知识请参考Android自定义控件基本原理详解(一)这篇文章。  需求产生背景: 为