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 ...
 
随机推荐
- BZOJ 1066 Dinic
			
思路: 网络流 建边比较麻烦 //By SiriusRen #include <queue> #include <cstdio> #include <cstring> ...
 - 用JS把复选框做成单选框,左显示div,右隐藏div
			
<input type="checkbox" name="checkname" onclick="check(this)"/>左 ...
 - asp.net MVC4.0中几种控制器的区别
			
空的MVC控制器MVC控制器的读/写操作和视图,使用实体框架MVC控制器带空的读/写操作空API控制器API控制器的读/写操作和视图,使用实体框架API控制器带空的读/写操作
 - OpenSUSE42.3 leap 软件源设置
			
一.OpenSUSE软件源介绍: 1.默认已经加入了官方的软件源,不过我们自己也可以根据需要添加很多非官方软件源,添加软件源时要注意: 非官方源可能包含一些试验中的不稳定的软件包 不同的软件源之 ...
 - WPF 支持的多线程 UI 并不是线程安全的
			
原文:WPF 支持的多线程 UI 并不是线程安全的 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布,但务必保留文章署名吕毅(包含链 ...
 - 为线程绑定CPU
			
// learn gcc atomic variable #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> ...
 - 用ElasticSearch,LogStash,Kibana搭建实时日志收集系统
			
用ElasticSearch,LogStash,Kibana搭建实时日志收集系统 介绍 这套系统,logstash负责收集处理日志文件内容存储到elasticsearch搜索引擎数据库中.kibana ...
 - Hive总结(五)hive日志
			
日志记录了程序执行的过程.是一种查找问题的利器. Hive中的日志分为两种 1. 系统日志,记录了hive的执行情况,错误状况. 2. Job 日志,记录了Hive 中job的运行的历史过程. 系统日 ...
 - mysql异常Lock wait timeout exceeded; try restarting transaction
			
mysql中使用update语句更新数据报错: Lock wait timeout exceeded; try restarting transaction. 这是由于你要更新的表的锁在其它线程手里. ...
 - adb logcat 使用
			
之前打印log的时候,使用的是别人配置好的快捷键,结果现在快捷键没有配置,具体的log命令就不会了.今天上网查了一下,记录下来 打印的log是 android.util.Log.e("zha ...