自定义View小练习

来源:互联网 发布:创维50寸4k网络电视 编辑:程序博客网 时间:2024/05/21 11:02

自定义View控件,该控件为随着手指移动的小球。View实际上是一个透明的矩形区域。

DrawOwnView.java

import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.View;public class DrawOwnView extends View{                            //继承Viewpublic float currentX = 40;                               //定义小球初始坐标public float currentY = 50;public DrawOwnView(Context context)                       //重写构造函数{super(context);}protected void onDraw(Canvas canvas)                     //重写onDraw函数{super.onDraw(canvas);Paint p = new Paint();                          //定义一个画笔p.setColor(Color.RED);canvas.drawCircle(currentX, currentY, 15, p);  //画圆}}
</pre> DrawView.java <pre name="code" class="java">package com.example.drawview;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.LinearLayout;public class DrawView extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_draw_view);        LinearLayout root  = (LinearLayout)this.findViewById(R.id.root);   //取得布局文件中LinearLayout布局管理器        final DrawOwnView draw = new DrawOwnView(this);                    //实例化自定义的控件        draw.setMinimumWidth(300);                                         //设置自定义控件的大小        draw.setMinimumHeight(500);        draw.setOnTouchListener(new OnTouchListener() {                    //绑定触摸监听事件类,采用匿名内部类方式重写onTouch函数@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubdraw.currentX = event.getX();draw.currentY = event.getY();draw.invalidate();                        //重绘小球return true;}});        root.addView(draw);                                              //控件添加到布局文件中    }  }
activity_draw_view.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/root"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:orientation="vertical"></LinearLayout>

显示效果如图:


 手指就可以随心所欲的控制小球的移动了。


      

     

    

0 0