国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

自定義view加之

2019-11-09 15:10:56
字體:
來源:轉載
供稿:網友

首先我們要在values文件夾下創建一個attrs的xml在attrs里面寫入自己的自定義屬性

<attr name="titleText" format="string" /><attr name="titleTextColor" format="color" /><attr name="titleTextSize" format="dimension" /><declare-styleable name="CustomTitleView">    <attr name="titleText" />    <attr name="titleTextColor" />    <attr name="titleTextSize" /></declare-styleable>然后在布局文件中引用我們的自定義屬性

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:custom="http://schemas.android.com/apk/res-auto"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bawei.lianxi.MainActivity">    <com.szg.lianxi.MyView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        custom:titleText="3712"        custom:titleTextColor="#ff0000"        custom:titleTextSize="40sp"        /></RelativeLayout>新建一個類繼承View并重寫View的方法

package com.bawei.lianxi;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.util.TypedValue;import android.view.View;/** * Created by 宋澤港 on 2017/2/8. */public class MyView extends View{    /**     * 繪制文本的范圍     */    PRivate  Rect mBound;    private  Paint mPaint;    //文本顏色    private  int mTitleTextColor;    //文本大小    private  int mTitleTextSize;    //文本    private  String mTitleText;    public MyView(Context context) {        this(context,null);    }    public MyView(Context context, AttributeSet attrs) {        this(context, attrs,0);    }    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    //獲得我們所定義的自定義屬性        mPaint=new Paint();        TypedArray a=context.obtainStyledAttributes(attrs,R.styleable.CustomTitleView,defStyleAttr,0);        int n=a.getIndexCount();        for (int i=0;i<n;i++){            int attr=a.getIndex(i);            switch (attr){                case R.styleable.CustomTitleView_titleText:                    mTitleText=a.getString(attr);                    break;                //設置默認顏色                case R.styleable.CustomTitleView_titleTextColor:                    mTitleTextColor=a.getColor(attr,Color.RED);                    break;                case R.styleable.CustomTitleView_titleTextSize:                    mTitleTextSize=a.getDimensionPixelSize(attr, (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,16,getResources().getDisplayMetrics()) );                    break;            }        }        //釋放資源        a.recycle();        /**         * 繪制文本的寬和高         */        mPaint.setTextSize(mTitleTextSize);        mBound=new Rect();        mPaint.getTextBounds(mTitleText,0,mTitleText.length(),mBound);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        super.onMeasure(widthMeasureSpec, heightMeasureSpec);    }    //畫布    @Override    protected void onDraw(Canvas canvas) {        mPaint.setColor(Color.YELLOW);//設置畫布的顏色        //繪制的位置        canvas.drawRect(0,0,getMeasuredWidth(),getMeasuredHeight(),mPaint);        mPaint.setColor(mTitleTextColor);        canvas.drawText(mTitleText, getWidth() / 2 - mBound.width() / 2, getHeight() / 2 + mBound.height() / 2, mPaint);        super.onDraw(canvas);    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 菏泽市| 六枝特区| 盘山县| 望都县| 贡嘎县| 会东县| 宝兴县| 金寨县| 砚山县| 瓮安县| 永吉县| 德兴市| 马关县| 北京市| 南江县| 长岛县| 泰州市| 定襄县| 望江县| 宁化县| 五家渠市| 喀喇| 龙川县| 赤城县| 顺昌县| 栾川县| 巴里| 营山县| 新昌县| 灵台县| 木兰县| 雷山县| 石阡县| 镇安县| 新源县| 吴江市| 阿拉善左旗| 万州区| 运城市| 阜南县| 长兴县|