zoukankan      html  css  js  c++  java
  • Android 学习笔记之Bitmap位图虽触摸点移动

    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.   
  • 相关阅读:
    jQuery
    前端开发之JavaScript篇
    前端开发之css篇
    前端开发之html篇
    mysql续
    MySQL入门
    进程线程协程那些事儿
    Python之socket网络编程
    2016.6.24——vector<vector<int>>【Binary Tree Level Order Traversal】
    2016.6.21——Climbing Stairs
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6722672.html
Copyright © 2011-2022 走看看