2019独角兽企业重金招聘Python工程师标准>>>

<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" >

<LinearLayout
        android:id="@+id/layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
></LinearLayout>
</RelativeLayout>

package com.example.zidingyi;

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

public class DrawView extends View {
float paintX =400;
float paintY =600;
public DrawView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

/**
* 这个方法会在初始化后背调用一次,invaildate()的时候会被调用
*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint=new Paint();//设置一个笔
paint.setAntiAlias(true);//设置没有锯齿
paint.setColor(Color.RED);//设置笔的颜色
canvas.drawCircle(paintX, paintY, 50, paint);//距离画圆

}
}

package com.example.zidingyi;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

private LinearLayout layout;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        layout = (LinearLayout)  findViewById(R.id.layout);//找到这个空间
        final DrawView drawView = new DrawView(this);//创建自定义的控件
        drawView.setMinimumHeight(300);
        drawView.setMinimumWidth(500);
        layout.addView(drawView);//讲自定义的控件进行添加
        //设置一个触摸事件
        drawView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//改变之前的X,Y
drawView.paintX=event.getX();
drawView.paintY=event.getY();
//调用重新绘制
drawView.invalidate();
return true;
}
});
    }
}

转载于:https://my.oschina.net/u/556624/blog/92414

Android通过onDraw实现在View中绘图操作相关推荐

  1. Android 触摸事件机制(三) View中触摸事件详解

    本文将对View中触摸事件相关的内容进行介绍.重点介绍的是dispatchTouchEvent(), onTouchEvent()这两个API以及OnTouchListener接口. 注意:本文是基于 ...

  2. android里面画布快照,自定义 View - Canvas - 画布操作和快照

    操作 API 备注 移动画布 translate(float dx, float dy) -- 画布旋转 rotate(float degrees) -- 画布旋转 rotate(float degr ...

  3. android中实现毛笔效果(View 中绘图)

    最近有一个项目设计一个APP实现通过触摸屏实现毛笔写字效果.传统的绘画板程序直接通过Path的moveTo和LineTo便可实现简单的线条绘画程序.然而要达到毛笔的笔锋效果则需要更为详细点的设计.我的 ...

  4. 【android-tips】如何在view中取得activity对象

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 今天想实现在view中返回上一个activity的功能,想了半天.因为在虽然view是包含于一个activity ...

  5. Android中的自定义View以及绘图工具

    1.1自定义view的简介 为什么要使用自定义view 在Android开发中有很多业务场景,原生的控件是无法满足应用,并且经常也会遇到一个UI在多处 重复使用情况,那么就需要通过自定义View的方式 ...

  6. Android中实现Bitmap在自定义View中的放大与拖动

    一基本实现思路: 基于View类实现自定义View –MyImageView类.在使用View的Activity类中完成OnTouchListener接口,实现对MotionEvent事件的监听与处理 ...

  7. 在android view中写坦克大战

    我是把以前写在java里的代码直接移植到android上了(后面贴的代码有比较的部分) 只改了画笔的对象,和控制方式 代码大致思路 1.画 我们要画出坦克,炮弹,爆炸效果 1.1画坦克 1.1.1画竖 ...

  8. android listview settag,Android View中setTag的二三事

    每一个APP,都离不开View的使用,小到一个登陆注册页面,大到复杂的网上商城,都是View使用的具体体现. 往往我们使用View,其实就是为了向用户展示一定的数据,因此,view的使用又总是离不开数 ...

  9. Android 曝光采集,商品view曝光量的统计,判断RecyclerView中某子view是否可见 view是否显示在屏幕中 view展示次数统计...

    近期pm提出需要统计首页商品的曝光亮,由于我们的首页是用的recylerview实现的,这里就来讲下如何使用监听recylerview的滚动事件来实现子view的曝光量统计,我们这里说的view都是列 ...

最新文章

  1. poj2723详解(二分 + 2-SAT)( 两种方法求解 )
  2. VS Code 常用插件推荐
  3. Linux下运行C语言程序
  4. 腾讯的电商,在东南亚击败了阿里巴巴
  5. 此三层非彼三层——MVCamp;UBD
  6. 火币网的macd怎么算的_黄金投资中MACD的计算方式
  7. 初步认识Volatile-MESI优化带来的可见性问题
  8. 漫画:千万别在同事面前装逼
  9. 图示不写程序如何根据dbSNP rs号批量获取基因组坐标、相关基因和表型影响
  10. YouTube怎么判断影片内含侵权内容? 解析Content ID内容识别系统的原理及功能
  11. 如何在 AirPods Pro 上安装 Apple 的 Beta 版固件?
  12. TP5.1中的验证类 validate用法
  13. php成绩查询系统的学习心得_CPA成绩查询系统开通时间
  14. 备份和恢复是解决勒索病毒的最佳方案
  15. python中class什么意思_python class是什么
  16. 【读书笔记】计算广告(第3部分)
  17. [渝粤教育] 石家庄铁道大学 理论力学 参考 资料
  18. 射频信号空间衰减计算
  19. 知乎上超多赞同的自学网站,每天学习15分钟,受益终身!
  20. linux中ll -lht,02-Linux命令(上)

热门文章

  1. PHP 入门 - 8.数据库
  2. 我的Notepad++环境配置
  3. Yii2几个要注意的小地方
  4. Hash 分布均衡算法
  5. DIV+CSS专题:十天学会DIV+CSS
  6. Javascript 你不知道的事
  7. document.body.scrollTop的值为零问题
  8. React 实现 百度搜索框(简易)
  9. java 企业信息门户 拖拽排版_web中拖拽排序与java后台交互实现
  10. react子组件向父组件传递数据实例