现在的位置: 首页 > 综合 > 正文

Android 自定义View

2018年04月07日 ⁄ 综合 ⁄ 共 1634字 ⁄ 字号 评论关闭

在安卓开发的过程中,安卓官方自带的控件有时候往往不能满足我们的需求。这个时候我就需要自定义。下面我们就看看自定义View:

 

package com.example.myview;

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

public class MyView extends View implements OnClickListener{
	private int a=0;
	private Paint paint;

	public MyView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	 public MyView(Context context, AttributeSet attrs) {
		  super(context, attrs);
		 }
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		paint=new Paint();//定义一个画笔
		paint.setColor(Color.RED);//给画笔设置颜色
		paint.setStyle(Style.FILL);//设置画笔填充
		canvas.drawCircle(100, 100, 100, paint);//画个圆
		paint.setColor(Color.BLUE);//给画面设置颜色
		paint.setTextSize(20);//设置字体大小
		canvas.drawText("小源"+a, 100, 100, paint);
		setOnClickListener(this);//给View加上监听
		
	}
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		a++;
		invalidate();//重新绘制
	}
}

在XML中 我们要把我们自定义的控件写上如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

	<com.example.myview.MyView 
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"/>
</RelativeLayout>

这就完成了一个非常简单的自定义View.程序路上一起努力,加油!

好了,一点点在进步!最终会成为大神的!

 

抱歉!评论已关闭.