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

本文共 1973 字,大约阅读时间需要 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.   

转载地址:http://gmrfm.baihongyu.com/

你可能感兴趣的文章
AT&T在宣传语中对用户说“谢谢” 花旗银行不干了
查看>>
中国个人信息安全和隐私保护报告:两成人曾受电信诈骗恐吓
查看>>
SimpliVity公司高管谈IT“难以忍受的复杂性”
查看>>
运营商再赶“双创”潮 政策催化与利润收窄成主推力
查看>>
低端机的希望?曝联发科10nm工艺处理器
查看>>
如何选购电话会议摄像头
查看>>
建设智慧城市力破“信息孤岛”
查看>>
2015年智能家居大事记 合纵连横成主旋律
查看>>
OpenStack网络基础
查看>>
EnterpriseFrameWork框架基础功能之字典数据配置管理
查看>>
今年,全球产业互联网发展提速
查看>>
漂浮式水上光伏场址如何选择?
查看>>
CloudCC CRM观点:移动应用已成必然
查看>>
我谈软件测试
查看>>
一波未平,一波又起:“永恒之石”恶意程序利用七种NSA“网络武器”
查看>>
远程数据中心蓬勃发展
查看>>
《Effective Debugging:软件和系统调试的66个有效方法》——第14条:考虑对软件进行更新...
查看>>
面部识别是把双刃剑 取长补短是要诀
查看>>
百亿新能源发电补贴是庞氏骗局?
查看>>
DTS
查看>>