丽水企业网站建设公司,好用的h5网站模板,汕头seo收费,给wordpress添加表单Android 自定义组件 Android 提供了非常精致的和非常强大的组件化模型#xff0c;能够更加方便的构建UI,这些UI组件都是基于基本的layout类:View 和 ViewGroup。 部分能够用的widgets包括#xff1a;Button#xff0c;TextView,EditText,ListView,CheckBox#xff0c;Radio… Android 自定义组件 Android 提供了非常精致的和非常强大的组件化模型能够更加方便的构建UI,这些UI组件都是基于基本的layout类:View 和 ViewGroup。 部分能够用的widgets包括ButtonTextView,EditText,ListView,CheckBoxRadioButton,Gallery,Spinner,和一些比较特殊用途的widgetsAutoCompleteTextView, ImageSwitcher, and TextSwitcher. 布局组件有LinearLayout, FrameLayout, RelativeLayout,absoluteLayout,TabelLayout 如果预定义的widgets和布局组件都不符合您的需求那就需要创建属于自己的view如果只是需要对已有的widget和layout进行小部分的调整那就可以通过重写部分一些方法来完成开发。 下面就举个例子讲解如何创建自定义的xml属性以及如果使用。 1. 首先创建一个新的android application. 2. 创建属性在res/values/ 下创建一个attr.xml 文件定义好需要的attributes ?xml version1.0 encodingutf-8?
resourcesdeclare-styleable namecustomattr nametext formatstring /attr namesize formatinteger/attr namecolor formatreference|color//declare-styleable
/resources 3. 创建自定义的View 创建一个View CustomView 继承自View(根据具体的情况如果需求和已经存在的widget或者layout相差不大就继承重写一些方法) package com.hualu.androidview;import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;public class CustomView extends View {private Paint p null;private String text null;public CustomView(Context context) {super(context);initCustomView() ;}public CustomView(Context context, AttributeSet attrs){super(context, attrs ) ;initCustomView() ;TypedArray a context.obtainStyledAttributes(attrs,R.styleable.custom) ;int indexCount a.getIndexCount() ;for(int i 0 ; i indexCount ; i ){int index a.getIndex(i) ;switch (index) {case R.styleable.custom_text:text a.getString(index) ;break;case R.styleable.custom_size:p.setTextSize(a.getInt(index, 0)); break;case R.styleable.custom_color:p.setColor(a.getColor(index, 0xFF000000)) ;break;}}a.recycle() ;}void initCustomView(){p new Paint();p.setAntiAlias(true);} ;Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawText(text, 10, 10, p) ;}}4. 在layout的文件使用自定义的view RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:customhttp://schemas.android.com/apk/res/com.hualu.androidviewxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivity TextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_centerHorizontaltrueandroid:layout_centerVerticaltrueandroid:textstring/hello_world /com.hualu.androidview.CustomViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentcustom:textcustom viewcustom:color#00FF00custom:size18//RelativeLayout 5. 运行应用 结果 转载于:https://www.cnblogs.com/java20130722/archive/2013/03/31/3207276.html