自定义attrs.xml与styles.xml还有Theme(主题)

在学习之前提个小知识:Color.parseColor("#ffffff")这样可以转为0x开头形式的颜色值

在values文件夹下建立attrs.xml格式如下:



    
    
        
        
    
    
    
        
        
    

布局代码:注意自定义属性加上一句如下提示





    

    

自定义控件java代码:一目了然

package com.example.k.myapplication;

import android.content.res.TypedArray;


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

public class MyView extends View {
    private Paint mPaint;
    private static final String mString = "Welcome to Mr Wei's blog";
    public MyView(Context context) {
        super(context);
        mPaint = new Paint();
    }

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mPaint = new Paint();
        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyView);
        int textColor = a.getColor(R.styleable.MyView_textColor, 0XFFFFFFFF);
        float textSize = a.getDimension(R.styleable.MyView_textSize, 36);
        mPaint.setTextSize(textSize);
        mPaint.setColor(textColor);
        a.recycle();
    }

    @Override
    protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
        super.onDraw(canvas);
// 设置填充
        mPaint.setStyle(Style.FILL);
// 画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标
        canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);
        mPaint.setColor(Color.BLUE);
// 绘制文字
        canvas.drawText(mString, 10, 110, mPaint);
    }
}


=================================================================================================================

定义自己的style,在styles.xml文件下定义:



    
    
    
    
    

在布局引用即可:


===================================================================================================================

以下为自定义Theme:在styles.xml文件下定义


然后在AndroidManifest.xml文件下引用,可以作用于整个应用,也可以作用于一个活动:


        
            
                
                
            
        
    



你可能感兴趣的:(Android)