Android通过onDraw实现在View中绘图操作
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中绘图操作相关推荐
- Android 触摸事件机制(三) View中触摸事件详解
本文将对View中触摸事件相关的内容进行介绍.重点介绍的是dispatchTouchEvent(), onTouchEvent()这两个API以及OnTouchListener接口. 注意:本文是基于 ...
- android里面画布快照,自定义 View - Canvas - 画布操作和快照
操作 API 备注 移动画布 translate(float dx, float dy) -- 画布旋转 rotate(float degrees) -- 画布旋转 rotate(float degr ...
- android中实现毛笔效果(View 中绘图)
最近有一个项目设计一个APP实现通过触摸屏实现毛笔写字效果.传统的绘画板程序直接通过Path的moveTo和LineTo便可实现简单的线条绘画程序.然而要达到毛笔的笔锋效果则需要更为详细点的设计.我的 ...
- 【android-tips】如何在view中取得activity对象
(转载请注明出处:http://blog.csdn.net/buptgshengod) 今天想实现在view中返回上一个activity的功能,想了半天.因为在虽然view是包含于一个activity ...
- Android中的自定义View以及绘图工具
1.1自定义view的简介 为什么要使用自定义view 在Android开发中有很多业务场景,原生的控件是无法满足应用,并且经常也会遇到一个UI在多处 重复使用情况,那么就需要通过自定义View的方式 ...
- Android中实现Bitmap在自定义View中的放大与拖动
一基本实现思路: 基于View类实现自定义View –MyImageView类.在使用View的Activity类中完成OnTouchListener接口,实现对MotionEvent事件的监听与处理 ...
- 在android view中写坦克大战
我是把以前写在java里的代码直接移植到android上了(后面贴的代码有比较的部分) 只改了画笔的对象,和控制方式 代码大致思路 1.画 我们要画出坦克,炮弹,爆炸效果 1.1画坦克 1.1.1画竖 ...
- android listview settag,Android View中setTag的二三事
每一个APP,都离不开View的使用,小到一个登陆注册页面,大到复杂的网上商城,都是View使用的具体体现. 往往我们使用View,其实就是为了向用户展示一定的数据,因此,view的使用又总是离不开数 ...
- Android 曝光采集,商品view曝光量的统计,判断RecyclerView中某子view是否可见 view是否显示在屏幕中 view展示次数统计...
近期pm提出需要统计首页商品的曝光亮,由于我们的首页是用的recylerview实现的,这里就来讲下如何使用监听recylerview的滚动事件来实现子view的曝光量统计,我们这里说的view都是列 ...
最新文章
- poj2723详解(二分 + 2-SAT)( 两种方法求解 )
- VS Code 常用插件推荐
- Linux下运行C语言程序
- 腾讯的电商,在东南亚击败了阿里巴巴
- 此三层非彼三层——MVCamp;UBD
- 火币网的macd怎么算的_黄金投资中MACD的计算方式
- 初步认识Volatile-MESI优化带来的可见性问题
- 漫画:千万别在同事面前装逼
- 图示不写程序如何根据dbSNP rs号批量获取基因组坐标、相关基因和表型影响
- YouTube怎么判断影片内含侵权内容? 解析Content ID内容识别系统的原理及功能
- 如何在 AirPods Pro 上安装 Apple 的 Beta 版固件?
- TP5.1中的验证类 validate用法
- php成绩查询系统的学习心得_CPA成绩查询系统开通时间
- 备份和恢复是解决勒索病毒的最佳方案
- python中class什么意思_python class是什么
- 【读书笔记】计算广告(第3部分)
- [渝粤教育] 石家庄铁道大学 理论力学 参考 资料
- 射频信号空间衰减计算
- 知乎上超多赞同的自学网站,每天学习15分钟,受益终身!
- linux中ll -lht,02-Linux命令(上)