zoukankan      html  css  js  c++  java
  • Android 实现图片反转

    可能有些同学不明白,为啥要图片反转(不是旋转哦),游戏我们在游戏开发中,为了节省图片资源(空间), 有可能会使用到图片反转,例如,一个人物图片,面向左,或右,如果不能实现图片反转的情况下,就需要两张图片了,这样就会占用资源很多,不多说了还是上代码来看看吧。

    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
    
    }
    }
  • 相关阅读:
    day18:json模块&time模块&zipfile模块
    Color Changing Sofa Gym
    Gym
    Gym
    Java的awt包的使用实例和Java的一些提示框
    分组背包 例题:hdu 1712 ACboy needs your help
    UVA1401 Remember the Word 字典树维护dp
    CodeForces833 B. The Bakery 线段树维护dp
    hdu4719 Oh My Holy FFF 线段树维护dp
    Little Difference Gym
  • 原文地址:https://www.cnblogs.com/vus520/p/2561878.html
Copyright © 2011-2022 走看看