安卓图片自适应

       学了一段时间java以及安卓,便想着开发一款小游戏。当然对于开发游戏最基本的view、surfaceView以及Thread就不介绍了,在此仅仅介绍一下安卓游戏的图片自适应。因为如果在开发游戏之前不做图片自适应的话,很有可能会功亏一篑。而我就吃过这样的亏。

    刚开始的时候开发了一款游戏是滚屏类的射击游戏。起初在模拟器上面运行,将所有图片通过图片编辑器编好尺寸再放入游戏中使用,结果在模拟器下面可以正常运行,但是到真机上面或者是不一样尺寸的模拟器上面就会出现错误。发火

    那种感觉简直是糟糕透了。那么,我们就需要在游戏开发之前做好图片自适应。

   要想做好图片自适应,其实非常简单。我把它分为三个步骤:

   1,获取屏幕的宽高。要想获取手机的屏幕大小也是十分简单,仅仅需要三四行代码。

                DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float tempWidth=dm.widthPixels;
float tempHeight=dm.heightPixels;

               提示:横屏竖屏全屏的设置方式也十分简单,去搜索一下就可以了。

   2,编写图片自适应方法

        public  Bitmap fitToScale(Bitmap bm,double a,double b){       //图片自适应函数
    float bitWidth=bm.getWidth();
    float bitHeight=bm.getHeight();
   
    float matrixW=(float) ((screenWidth/bitWidth)*a);                       //按照比例对图片进行扩大以及缩小               
    float matrixH=(float) ((screenHeight/bitHeight)*b);
   
    Matrix matrix=new Matrix();
    matrix.postScale(matrixW, matrixH);             
   
    Bitmap newBm=Bitmap.createBitmap(bm,0,0,(int)bitWidth,(int)bitHeight,matrix,true);
    return newBm;
    } 

            提示:这里传入的参数就是占屏幕的比率,a是占屏幕横向的比率,b是占屏幕纵向的比率如果设置a,b都为1

                       图片就会铺满屏幕。

                       Matrix可以用来设置图形的旋转,平移,倾斜以及缩放。这里使用的是缩放。

                       最后返回的是Bitmap类型。

   3,使用图片自适应函数

            bitmap=fitToScale(BitmapFactory.decodeResource("获取资源", "这里放图片"), 1,1);

                例如:

bitmap=fitToScale(BitmapFactory.decodeResource(getResources(), R.drawable.bitmap), 1,1); 

      接下来只要将这张图片画到画板上面,通过改变ab的值就可以画出自己想要大小的图片。

     安卓游戏开发,虽然图片自适应的代码很少,但是必不可少。因为是自学的安卓游戏开发,这种方法也是通过搜索以及自己思索才写出来的,所以希望大家多多指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值