博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记之Bitmap位图虽触摸点移动
阅读量:5128 次
发布时间:2019-06-13

本文共 2029 字,大约阅读时间需要 6 分钟。

 

[java]
  1. package xiaosi.bitmap;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5.   
  6. public class mianActivity extends Activity  
  7. {  
  8.   
  9.     private surfaceView bitmapView = null;  
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState)  
  12.     {  
  13.         super.onCreate(savedInstanceState);  
  14.         bitmapView = new surfaceView(this);  
  15.         setContentView(bitmapView);  
  16.     }  
  17. }  

surfaceView surfaceView .

[java]
    1. package xiaosi.bitmap;  
    2.   
    3. import java.io.InputStream;  
    4.   
    5. import android.content.Context;  
    6. import android.content.res.Resources;  
    7. import android.graphics.Bitmap;  
    8. import android.graphics.Canvas;  
    9. import android.graphics.Color;  
    10. import android.graphics.drawable.BitmapDrawable;  
    11. import android.view.MotionEvent;  
    12. import android.view.SurfaceHolder;  
    13. import android.view.SurfaceView;  
    14.   
    15.   
    16. public class surfaceView extends SurfaceView{  
    17.     // 控制surface的接口,提供了控制surface的大小、格式、像素  
    18.     private SurfaceHolder surfaceHolder;  
    19.     private Canvas canvas = null;  
    20.     // x y用户才触摸屏幕的坐标  
    21.     private float x=0,y=0;  
    22.     private Bitmap bitmap = null;  
    23.   
    24.     public surfaceView(Context context) {  
    25.         super(context);  
    26.         // 获取SurfaceHolder接口  
    27.         surfaceHolder = this.getHolder();  
    28.         // 设置屏幕保持开启状态  
    29.         this.setKeepScreenOn(true);  
    30.         // 获取资源文件res  
    31.         Resources res=getResources();  
    32.         // 获取位图资源文件的输入流  
    33.         InputStream inputStream=res.openRawResource(R.drawable.h);  
    34.         // 创建可绘制的位图对象  
    35.         BitmapDrawable bitmapDrawable=new BitmapDrawable(inputStream);  
    36.         // 通过可绘制位图对象得到位图引用  
    37.         bitmap=bitmapDrawable.getBitmap();  
    38.         /* 
    39.          * // 获取资源文件的引用res   
    40.         Resources res = getResources();   
    41.         // 获取图形资源文件   
    42.         Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.h);   
    43.          */  
    44.     }  
    45.   
    46.     //绘制位图  
    47.     private void onDraw() {  
    48.         try {  
    49.             // 锁定Canvas画布  
    50.             canvas = surfaceHolder.lockCanvas();  
    51.             // 设置canvas画布背景为黑色  
    52.             canvas.drawColor(Color.GREEN);  
    53.             // 在画布上绘制位图  
    54.             //让位图的中心正好在触摸点位置上  
    55.             canvas.drawBitmap(bitmap, x-bitmap.getWidth()/2, y-bitmap.getHeight()/2, null);    
    56.         } catch (Exception ex) {  
    57.         } finally {   
    58.             if (canvas != null)  
    59.                 // 解锁画布,并显示绘制图片  
    60.                 surfaceHolder.unlockCanvasAndPost(canvas);   
    61.         }  
    62.     }  
    63.     //触摸事件  
    64.      public boolean onTouchEvent(MotionEvent event){  
    65.          x = event.getX();  
    66.          y = event.getY();  
    67.          onDraw();  
    68.         return true;   
    69.      }  
    70.   

转载于:https://www.cnblogs.com/Free-Thinker/p/6721739.html

你可能感兴趣的文章
elastaticsearch
查看>>
postgreSQL 简单命令操作
查看>>
Spring JDBCTemplate
查看>>
Radon变换——MATLAB
查看>>
第五章笔记
查看>>
Iroha and a Grid AtCoder - 1974(思维水题)
查看>>
gzip
查看>>
转负二进制(个人模版)
查看>>
LintCode-Backpack
查看>>
查询数据库锁
查看>>
[LeetCode] Palindrome Number
查看>>
我对于脚本程序的理解——百度轻应用有感
查看>>
SQL更新某列包含XX的所有值
查看>>
网易味央第二座猪场落户江西 面积超过3300亩
查看>>
面试时被问到的问题
查看>>
spring 事务管理
查看>>
VS2008 去掉msvcr90的依赖
查看>>
当前记录已被另一个用户锁定
查看>>
Bootstrap
查看>>
前端安全-常见的攻击以及防御
查看>>