码迷,mamicode.com
首页 > 移动开发 > 详细

Android 自定义view组件

时间:2015-04-23 00:18:25      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:android   自定义view   

    Android中的组件类似于swxing中的Panel,它只是一片空白区域,对于UI组件来说,只是在其中绘制外观。

    开发者可以继承view,自定义自己的组件,然后重写其中的方法:

      构造器:当java创建或者xml创建组件时调用

      

技术分享

技术分享

下面通过一个例子,该例子设计一个组件,在手触摸的地方绘制一个圆形:


新建java类,添加如下代码:

package com.example.tupianliulanqi;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

public class MyView extends View {
	private Paint p = new Paint();
	private float myX = 0;
	private float myY = 0;
	public MyView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	
	//用于重新绘制组件
	public void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		//设置画笔属性
		p.setColor(Color.RED);
		canvas.drawCircle(myX, myY, 15, p);
	}
	
	//触摸事件发生时调用
	public boolean onTouchEvent(MotionEvent event) {
		myX = event.getX();
		myY = event.getY();
		//告诉需要重新绘制组件
		this.invalidate();
		return true;
	}
}


在Activity中添加:

public class MainActivity extends Activity {

	MyView myview;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		LinearLayout layout = (LinearLayout)this.findViewById(R.id.main);

		myview = new MyView(this);;
		layout.addView(myview);
	}



本文出自 “无用大叔” 博客,请务必保留此出处http://aslonely.blog.51cto.com/6552465/1637333

Android 自定义view组件

标签:android   自定义view   

原文地址:http://aslonely.blog.51cto.com/6552465/1637333

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!