安卓手机触摸画线

1.  定义 MyPaintView 组件

public class MyPaintView extends View {
    private List<Point> allPoint = new ArrayList<Point>();
    public MyPaintView(Context context, AttributeSet attrs) {
        super(context, attrs);
        super.setBackgroundColor(Color.WHITE);
        super.setOnTouchListener(new OnTouchListenerImp());
    }

    private class OnTouchListenerImp implements OnTouchListener {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //Point类记录当前的X和Y坐标
            Point p = new Point((int)event.getX(),(int)event.getY());
            if(event.getAction() == MotionEvent.ACTION_DOWN) {  //判断抬起
                allPoint = new ArrayList<Point>();  //开始新的记录
                allPoint.add(p);   //记录坐标点
            } else if(event.getAction() == MotionEvent.ACTION_UP) {
                allPoint.add(p);   //记录坐标点
                MyPaintView.this.postInvalidate();  //重绘
            }
                return true;
        }
    }

    @Override
    protected void onDraw(Canvas canvas) {  //进行绘图
        Paint p = new Paint();
        p.setColor(Color.RED);   //设置颜色
        if(allPoint.size()>1) {
            Iterator<Point> iter = allPoint.iterator();
            Point first = null;
            Point last = null;
            while(iter.hasNext()) {    //迭代输出
                if(first == null) {
                    first = (Point) iter.next();
                } else {
                    if(last != null) {
                        first = last;       //修改起始点
                    }
                    last = (Point) iter.next();   //结束点
                    canvas.drawLine(first.x,first.y,last.x,last.y,p);
                }
            }
        }

        super.onDraw(canvas);
    }
}

2.  在activity_main.xml 中要注意,MyPaintView是自定义的,要加入完整的包名

<com.example.administrator.ontouchtest.MyPaintView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/paintView"/>

3.  编写MainActivity

public class MainActivity extends AppCompatActivity {
        private TextView info = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
}
时间: 2024-11-05 18:27:31

安卓手机触摸画线的相关文章

rem单位border-radius:50%在安卓手机中画圆变形

i{ display: inline-block; width: .08rem; height: .08rem; background-color: #D0021B; border-radius: 50%; /*border-radius: .08rem;*/ }; 使用border-radius:50%,或者border-radius的值与宽高相等,都可实现一个完美的圆形,但是在不同的安卓手机中,会有不同程度的变形(有的扁圆,有的大,有的小):当使用px做为宽高的单位,border-radiu

在安卓手机中rem单位border-radius:50%画圆变形的解决方案

i{ display: inline-block; width: .08rem; height: .08rem; background-color: #D0021B; border-radius: 50%; /*border-radius: .08rem;*/ };使用border-radius:50%,或者border-radius的值与宽高相等,都可实现一个完美的圆形,但是在不同的安卓手机中,会有不同程度的变形(有的扁圆,有的大,有的小):当使用px做为宽高的单位,border-radius

安卓手机APP压力monkey测试

一.Monkey概述 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种为了测试软件的稳定性.健壮性的快速有效的方法.Monkey测试是Android平台下自动化测试的一种快速有效的手段. 二.环境配置 JDK配置:根据自己的电脑系统位数,选择适当的JDK,若自己电脑系统是32位,尽量也选择使用32位的JDK,在此以此为例进行详解.JDK

安卓开发入门指南--安卓手机自适应draw9patch不失真背景设置具体步骤

一.[安卓手机自适应draw9patch不失真背景]实际问题 前一段时间,去长江玩了一趟,拍了很多照片,不过都是手机拍的,正常尺寸都是看不清楚老婆的脸蛋,就不自在的开始放大放小,可是一定程度图片就失真了.不知道你们都遇见过这样的情况吗?其实作为一个程序开发者,我很清楚这个手机自适应draw9patch不失真背景不怎么好,今天不妨就实际问题给大家解决一下. 首先背景自适应且不失真问题的存在已经给大家聚过例子了,希望大家多在生活中观察,遇到任何安卓app问题,可加QQ群:175229978进行交流.

安卓手机游戏测试要点

安卓手机游戏测试要点 广告位 1.上线产品是否需要加上广告,广告是否加上 2.广告位是否遮挡重要信息 评分界面 1.评分界面是否加上 2.评分界面文字是否出现错误,是否符合平台规定 3.按钮是否歧义 4.评分界面是否与游戏界面风格统一 计费部分 1. 计费要求是否达到 2. 购买道具:用户购买道具时,需要明确提示用户道具的名称.费用.并提供"确认"和"取消"功能选择.例:"购买道具***,信息费*元(不含通信费),通过短信代收,是否确认购买?"

Android中Path类的lineTo方法和quadTo方法画线的区别

当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式也是不一样的,下面就以代码的实现来直观的探究这两个方法的功能实现区别: 1. Path--->quadTo(float x1, float y1, float x2, float y2): 该方法的实现是当我们不仅仅是画一条线甚至是画弧线时会形成平滑的曲线,该曲线又称为"贝塞尔曲线"(Bezier curve),其中,x1,y1为控制点的坐标值,x2,y2为终

如何破解安卓手机上的图形锁(九宫格锁)

http://mobile.51cto.com/iphone-441496.htm 安卓手机的图形锁(九宫格)是3×3的点阵,按次序连接数个点从而达到锁定/解锁的功能.最少需要连接4个点,最多能连接9个点.网上也有暴力删除手机图形锁的方法,即直接干掉图形锁功能.但假如你想进入别人的手机,但又不想引起其警觉的话……你可以参考一下本文. 前提条件:手机需要root,而且打开调试模式.一般来讲,如果用过诸如“豌豆荚手机助手”.“360手机助手”一类的软件,都会被要求打开调试模式的.如果要删除手机内置软

用电脑键盘鼠标控制安卓手机或平板的应用——DeskDock

如果你同时使用多台电脑,可能早已听过Synergy.Input Director.无界鼠标等神奇的工具了,它们可以让你只使用一套键鼠即可控制操作多台不同电脑,让鼠标自由"穿梭"不同屏幕,非常方便. 不过上述软件都只能支持Win.Mac.Linux 等桌面系统,然而今天的主角DeskDock则可以让你使用电脑的鼠标键盘来控制 Android 安卓手机或平板!对于想借助安卓设备实现双屏工作提高效率的,或者经常要与 Android 平台的 APP 打交道的朋友来说可能非常实用,键鼠操作也更加

安卓手机ADB驱动干什么的?

Adb驱动是什么意思? /div> Adb是英文Android Debug Bridge的英文缩写,是debug工具,如果不是写IT的可能也很难理解debug的意思.说的直白一点就是Adb就是手机与电脑相连的桥,要想用电脑调试和管理手机就必须先安装Adb工具包,我们借助adb工具可以在电脑上给手机安装软件,运行shell命令,系统升级. 查看更多关于Adb驱动 .. 如何安装Adb驱动? 早些年我们在玩智能手机的时候安装adb驱动都需要在国外的一些网站上去找adb驱动程序,然后安装在电脑上连接手