安卓开发过程,安卓官方控制有时来自往往不能满足我们的需求。这一次,我必须定义自己。下面我们就来看看他们的定义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>
这就完毕了一个很easy的自己定义View.程序路上一起努力,加油!
行。进步一点点!它最终会成为神的!
版权声明:本文博主原创文章,博客,未经同意不得转载。