可能有些同學不明白,為啥要圖片反轉(不是旋轉哦),我們在游戲開發中,為了節省圖片資源(空間) 有可能會使用到圖片反轉,例如,一個人物圖片,面向左,或右,如果不能實現圖片反轉的情況下,就需要兩張圖片了,廢話少說,看效果上代碼:
在上圖中,實際兩個人物使用的是一張圖片,只是針對一張圖片做了處理而已。
詳細代碼:
public class ImageSurfaceView extends SurfaceView implements SurfaceHolder.Callback{ public Bitmap image_bitmap; public ImageSurfaceView(Context context) { super(context); //添加回調SurfaceHolder holder=this.getHolder(); holder.addCallback(this); initBitmap(context); } public void initBitmap(Context context){ Resources r=context.getResources(); image_bitmap=BitmapFactory.decodeResource(r,R.drawable.ima); } //界面渲染 public void onDraw(Canvas canvas){ canvas.drawBitmap(image_bitmap,0,0, null); //輸出第一張圖片 //初始化Matrix 該類是針對圖形做一些效果的工具類 Matrix m=new Matrix(); m.setScale(-1,1); m.postTranslate(image_bitmap.getWidth()*2,0); //向右平移兩個圖片寬度的位置 canvas.drawBitmap(image_bitmap, m, paint); //輸出第二張圖片 } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { Canvas canvas=holder.lockCanvas(); //調用渲染界面的方法 渲染出界面 onDraw(canvas); holder.unlockCanvasAndPost(canvas); } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub }}
以上就是android實現圖片反轉的關鍵代碼,希望對大家的學習有所幫助。
新聞熱點
疑難解答
圖片精選