Android 学习笔记之Bitmap位图虽触摸点移动

- package xiaosi.bitmap;
- import android.app.Activity;
- import android.os.Bundle;
- public class mianActivity extends Activity
- {
- private surfaceView bitmapView = null;
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- bitmapView = new surfaceView(this);
- setContentView(bitmapView);
- }
- }
surfaceView surfaceView .Java
- package xiaosi.bitmap;
- import java.io.InputStream;
- import android.content.Context;
- import android.content.res.Resources;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.drawable.BitmapDrawable;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- public class surfaceView extends SurfaceView{
- // 控制surface的接口,提供了控制surface的大小、格式、像素
- private SurfaceHolder surfaceHolder;
- private Canvas canvas = null;
- // x y用户才触摸屏幕的坐标
- private float x=0,y=0;
- private Bitmap bitmap = null;
- public surfaceView(Context context) {
- super(context);
- // 获取SurfaceHolder接口
- surfaceHolder = this.getHolder();
- // 设置屏幕保持开启状态
- this.setKeepScreenOn(true);
- // 获取资源文件res
- Resources res=getResources();
- // 获取位图资源文件的输入流
- InputStream inputStream=res.openRawResource(R.drawable.h);
- // 创建可绘制的位图对象
- BitmapDrawable bitmapDrawable=new BitmapDrawable(inputStream);
- // 通过可绘制位图对象得到位图引用
- bitmap=bitmapDrawable.getBitmap();
- /*
- * // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.h);
- */
- }
- //绘制位图
- private void onDraw() {
- try {
- // 锁定Canvas画布
- canvas = surfaceHolder.lockCanvas();
- // 设置canvas画布背景为黑色
- canvas.drawColor(Color.GREEN);
- // 在画布上绘制位图
- //让位图的中心正好在触摸点位置上
- canvas.drawBitmap(bitmap, x-bitmap.getWidth()/2, y-bitmap.getHeight()/2, null);
- } catch (Exception ex) {
- } finally {
- if (canvas != null)
- // 解锁画布,并显示绘制图片
- surfaceHolder.unlockCanvasAndPost(canvas);
- }
- }
- //触摸事件
- public boolean onTouchEvent(MotionEvent event){
- x = event.getX();
- y = event.getY();
- onDraw();
- return true;
- }
- }
Android 学习笔记之Bitmap位图虽触摸点移动的更多相关文章
- Android学习笔记之Bitmap位图虽触摸点移动
package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mianActiv ...
- Android 学习笔记之Bitmap位图的旋转
位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap ...
- Android 学习笔记之Bitmap位图的缩放
位图的缩放也可以借助Matrix或者Canvas来实现. 通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后 ...
- Android学习笔记之Bitmap位图的旋转
位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap ...
- Android学习笔记之Bitmap位图的缩放
位图的缩放也可以借助Matrix或者Canvas来实现. 通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后 ...
- Android学习笔记点击事件和触摸事件的区别
当我们点击手机屏幕的时候Android系统不仅会触发单击事件,还会触发触摸事件.在Android中它会先触发触摸事件,如果这个触摸事件没有被消费掉再去触发单击事件 代码示例: MainActivty. ...
- Android学习笔记进阶18 之画图并保存图片到本地
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
- Android学习笔记进阶18之画图并保存图片到本地
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
- Android学习笔记进阶16之BitmapShader
<1>简介 具体的看一下博文:Android学习笔记进阶15之Shader渲染 public BitmapShader(Bitmap bitmap,Shader.TileMode ti ...
随机推荐
- 17.I/O系统访问方式和类型
I/O方式 轮询 中断 DMA 通道
- SparkCore基础(二)
* SparkCore基础(二) 继续探讨SparkCore,开门见山,不多废话. SparkApplication结构探讨 包含关系: 之前我们运行过很多App了,其实每一个App都包含若干个Job ...
- poj2823/hdu3415 - 数据结构 单调队列
poj2823 题目链接 长度为N的数组,求宽度k的滑动窗口在数组上滑动时窗口内的最大值或最小值 如果用单调队列做,求最小值时,队列应该严格递增的.所以插入时,队尾大于等于插入值的元素都应被舍弃,因为 ...
- yii2.0缓存篇之文件缓存
文件缓存: 在 frontend/config/main.php/components数组下添加: 'cache'=>[ 'class'=>'yii\caching\FileCa ...
- 从Chrome源码看audio/video流媒体实现二(转)
第一篇主要介绍了Chrome加载音视频的缓冲控制机制和编解码基础,本篇将比较深入地介绍解码播放的过程.以Chromium 69版本做研究. 由于Chromium默认不能播放Mp4,所以需要需要改一下源 ...
- NodeJS学习笔记 (29)二进制解码-string_decoder(ok)
原文:https://github.com/chyingp/nodejs-learning-guide 自己过一遍: 模块简介 string_decoder模块用于将Buffer转成对应的字符串.使用 ...
- 09-breack语句
- 【Codeforces Round #465 (Div. 2) C】Fifa and Fafa
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 这个x2,y2和圆心(x1,y1)相连.形成的直线和圆交于点(x3,y3) 则(x2,y2)和(x3,y3)的中点就是所求圆的圆心. ...
- Spring Boot学习总结(1)——Spring Boot入门
摘要:Spring Boots是为了帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用. 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boo ...
- 二叉树、B树、B+树、B*树、LSM树
HBase 对于数据产品,底层存储架构直接决定了数据库的特性和使用场景.RDBMS(关系型数据库)使用 B树 及 B+树 作为数据存储结构. HBase 使用 LSM树. . 二叉树 ...