• 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
    
    }
    }
  • 相关阅读:
    .NET5微服务示例-Ocelot网关
    .NET5微服务示例-Polly熔断与降级
    .NET5微服务示例-Consul注册中心
    .NET下使用ELK日志中心
    [ 题解 ] [ 数学 ] [ JZOJ5809 ] 数羊
    [ 题解 ] [ 数学 ] 函数 (sequence) (欧拉函数)
    [ 题解 ] [ JZOJ5777 ] 小 x 玩游戏
    更换谷歌浏览器视频输入源
    axios 封装及 API 接口管理
    小程序代码压缩实践
  • 原文地址:https://www.cnblogs.com/vus520/p/2561878.html
Copyright © 2020-2023  润新知