欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义组件跟随自己手指主动画圆

程序员文章站 2023-11-17 22:14:34
本文实例为大家分享了android实现跟随手指画圆的具体代码,供大家参考,具体内容如下 首先自己定义一个view子类: package com.exampl...

本文实例为大家分享了android实现跟随手指画圆的具体代码,供大家参考,具体内容如下

首先自己定义一个view子类:

package com.example.androidtest0.myview;

import android.content.context;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.paint;
import android.util.attributeset;
import android.view.motionevent;
import android.view.view;

public class drawview extends view {
 public float currentx = 40;
 public float currenty = 50;
 //定义、并创建画笔
 paint p = new paint();
 public drawview(context context) {
 super(context);
 }

 public drawview(context context, attributeset attrs) {
 super(context, attrs);
 }
 
 @override
 protected void ondraw(canvas canvas) {
 super.ondraw(canvas);
 //设置画笔的颜色
 p.setcolor(color.red);
 //绘制一个小球
 canvas.drawcircle(currentx, currenty, 15, p);
 }
 
 /**
 * 为该组件的触碰事件重写事件处理方法
 */
 @override
 public boolean ontouchevent(motionevent event) {
 //改动currentx、currenty两个属性
 currentx = event.getx();
 currenty = event.gety();
 //通知当前组件重绘自己
 invalidate();
 return true;
 }
 
  
 

}

主界面xml:

custom_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/root"
  android:orientation="vertical" >

</linearlayout>

主activity:

package com.example.androidtest0;

import com.example.androidtest0.myview.drawview;

import android.app.activity;
import android.os.bundle;
import android.widget.linearlayout;

public class customview extends activity {
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.custom_layout);
 //获取布局文件里linearlayout容器
 linearlayout root = (linearlayout)findviewbyid(r.id.root);
 //创建drawview组件
 final drawview drawview = new drawview(this);
 //设置自己定义组件的最小宽度、高度
 drawview.setminimumwidth(10);
 drawview.setminimumheight(10);
 root.addview(drawview);
 }
}


效果:

Android自定义组件跟随自己手指主动画圆

除此之外:

还能够用xml的方式:也是首先建一个view的子类。和上面一样。

然后主界面xml例如以下:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/root"
  android:orientation="vertical" >

  <com.example.androidtest0.myview.drawview 
    android:layout_width="match_parent" android:layout_height="match_parent"
    />
</linearlayout>

主activity文件例如以下:

package com.example.androidtest0;

import com.example.androidtest0.myview.drawview;

import android.app.activity;
import android.os.bundle;
import android.widget.linearlayout;

public class customview extends activity {
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.custom_layout);
 }
}


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。