Android學習筆記之Bitmap點陣圖雖觸控點移動
阿新 • • 發佈:2018-11-19
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
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; }}