关闭

自定义组件及属性

标签: androidTypedArrayAttribute自定义组件自定义属性
1189人阅读 评论(0) 收藏 举报
分类:

其实很早以前在属性(Attribute)资源的使用:自定义组件一文中就介绍过自定义组件及属性的使用,这里再次回顾以下,直接上代码:

MainActivity:

package com.home.testtypedarray;

import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}

}


main布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:test="http://schemas.android.com/apk/res/com.home.testtypedarray"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.home.testtypedarray.MyView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        test:textColor="#0ff"
        test:textSize="20sp" />

</LinearLayout>

MyView类:

package com.home.testtypedarray;

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

public class MyView extends View {
	private Paint paint;

	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		paint = new Paint();
		// 得到MyView的TypedArray对象(属性的容器)
		TypedArray a = context
				.obtainStyledAttributes(attrs, R.styleable.MyView);
		// 得到MyView的textColor属性值
		int textColor = a.getColor(R.styleable.MyView_textColor, 0XFFFFFFFF);
		// 得到MyView的textSize属性值
		float textSize = a.getDimension(R.styleable.MyView_textSize, 36);
		paint.setColor(textColor);// 为画笔设置颜色
		paint.setTextSize(textSize);// 为画笔设置字体大小
		// Give back a previously retrieved StyledAttributes, for later re-use
		a.recycle();
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		paint.setStyle(Style.FILL);// 设置为填充风格
		canvas.drawText("测试自定义属性", 10, 30, paint);// 绘制文字
		canvas.drawRect(new Rect(10, 50, 200, 200), paint);// 绘制矩形
	}
}

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>




 

0
0
查看评论

COM组件中使用用户自定义数据类型

COM组件中使用用户自定义数据类型  2002-05-20· ·lostall··COM集中营  (1) 从IUnknown继承的自定义接口   把数据结构直接传送给基于VTable接口的方法,只适用于由MIDL编译生成的proxy/stu...
  • zzffly9
  • zzffly9
  • 2007-03-26 17:08
  • 686

JSF自定义组件必看

 UI类的两个职责:1.通过编码来呈现用户接口2.通过解码当前的HTTP请求来处理用户输入自定义组件开发者的工具箱:Javax.faces.component.UIComponentJavax.faces.webapp.UIComponentTagJavax.faces.context.F...
  • yxgxy1717
  • yxgxy1717
  • 2007-08-29 16:44
  • 616

Android React Native自定义组件的流程

假设我们现在有这么一个需求,就是自定义一个组件,该组件由一个小图标和图标的文字说明组成,并且带有背景色,背景色可设置,宽度高度可设置。如下图所示正是两个这样的组件所组成。首先,在index.android.js目录下新建一个js文件,命名为item.js,在里面输入模板代码
  • sbsujjbcy
  • sbsujjbcy
  • 2015-11-20 14:56
  • 7272

React之路--组件和自定义组件

想要构建强大的React应用,只是使用React自带的组件是远远不够的,还得依靠强大的自定义组件来支撑; 组件可以将UI切分成一些的独立的、可复用的部件,这样你就只需专注于构建每一个单独的部件。 react组件返回一个需要在页面上展示的React元素(还是元素),也就是说是需要由返回值的,这里的R...
  • codesWay
  • codesWay
  • 2017-11-22 13:41
  • 273

自定义组件使用属性资源

在 res/values目录下的attrs.xml中定义资源 定义一个自定义组件 public class MyButton extends Button { int duration; public MyButton(C...
  • yzr1183739890
  • yzr1183739890
  • 2015-08-20 15:26
  • 150

Android 自定义组件属性方式

 Android中自定义属性(attrs.xml,TypedArray的使用) 2012年05月01日 ⁄ Android 编程 ⁄ 暂无评论 ⁄ 被围观 3,391 次+ 做Android布局是件很享受的事,...
  • wy1987_708
  • wy1987_708
  • 2014-08-01 22:24
  • 454

自定义组件及其属性

自定义控件一般 都是继承相近的控件,比如,你想将按钮重新设计就可以继承button,如果没有相似的功能,就需要自己定义,这时可以继承view。 public class MyView extends View{ private MyView myView; private float n...
  • u013457684
  • u013457684
  • 2015-01-23 11:29
  • 360

自定义组件属性定义获取

xml version="1.0" encoding="utf-8"?> name="MyAttributeView"> name="my_name" ...
  • u012025629
  • u012025629
  • 2017-11-17 16:29
  • 31

Android自定义组件的属性

原文地址:http://blog.csdn.net/ab_ba/article/details/7928711 当要编写自己的widget或者其他view组件时,能够定义自己的属性标签是很重要的,这让我们能够彻底定制view的外观。      知识...
  • k_t_feng
  • k_t_feng
  • 2015-06-11 17:38
  • 257

微信小程序各类型的自定义组件篇

由于本人最近在开发小程序项目,期间对小程序有花点时间去研究,同时也找了网上大牛的一些案例,在这里分享部分自定义组件,部分代码是copy大牛案例的,有对小程序有兴趣的伙伴拿走,不谢!   源码下载地址:https://github.com/Jacky-MYD/WeChat-assembly.git ...
  • gao199108
  • gao199108
  • 2017-08-31 14:53
  • 432
    个人资料
    • 访问:1807260次
    • 积分:24163
    • 等级:
    • 排名:第329名
    • 原创:502篇
    • 转载:371篇
    • 译文:99篇
    • 评论:437条
    博客专栏
    最新评论