创建自定义视图(一)

作者:追风剑情 发布于:2016-5-9 14:38 分类:Android

一、创建自定义View

package com.test.androidtest;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class CrossView extends View {

	private Paint mPaint;
	private float[] mPoints = {0.5f, 0f, 0.5f, 1f,
				0f, 0.5f, 1f, 0.5f};
	
	public CrossView(Context context) {
		super(context);
		mPaint = new Paint();
		mPaint.setAntiAlias(true); //设置抗锯齿
		mPaint.setColor(0xFFFFFFFF);//设置画笔颜色
	}
	
	public CrossView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	
	public CrossView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	/**
	 * 所有的在画布上绘图的调用都应当受对应的save()和restore()的约束
	 */
	@Override
	public void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		canvas.save();
		
		//自定义代码
		int scale = getWidth();
		canvas.scale(scale, scale);
		canvas.drawLines(mPoints, mPaint);
		//end
		
		canvas.restore();
	}
}

 

提示:
视图同样有被其父视图调用的draw方法。这个方法处理基础的绘制步骤,像设置画布以及绘制背景等。你应当避免重写这个方法,而要重写onDraw方法。

二、创建主活动

package com.test.androidtest;

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

public class MainActivity extends Activity {

	private static String TAG = "sgzs";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(new CrossView(this));
	}
}

运行效果

1111111111111.png

 

标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号