国产探花免费观看_亚洲丰满少妇自慰呻吟_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);    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广饶县| 哈密市| 江城| 阜平县| 南江县| 博野县| 前郭尔| 石柱| 灵川县| 宁蒗| 宁海县| 澎湖县| 图木舒克市| 嘉祥县| 特克斯县| 南投市| 深泽县| 元谋县| 社会| 霞浦县| 屏南县| 封开县| 巴南区| 江川县| 祁连县| 比如县| 汤阴县| 永胜县| 许昌市| 正蓝旗| 岢岚县| 五寨县| 德惠市| 体育| 化州市| 福安市| 南部县| 兰考县| 定西市| 玉田县| 双柏县|