学了一段时间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(getResources(), R.drawable.bitmap), 1,1);

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

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