求高手啊,现在安卓手机游戏开发,全职高手游戏画面面分辨率怎么解决的,手机屏幕种类太多

> &>&&>&&>&正文
  由于品牌繁多,现在安卓手机已经成为很多智能用户们的选择,但是在品牌多样化的时候也有一些产商们浑水摸鱼,生产质量较差的产品。近期有一些机友们咨询安卓手机屏幕闪烁怎么解决,针对大家提出的问题下面小编为大家总结了安卓手机屏幕闪烁解决方法,希望对大家有所帮助。
【安卓手机屏幕闪烁解决方法】
1、取消显示屏幕更新
  如果你的手机系统是Android 4.0以上,那么可以尝试:设置—开发者选项(或者开发人员选项),将“显示屏幕更新”的勾选取消。
2、调整屏幕亮度设置
  设置—显示—自动亮度调节,将这个功能关闭试试。
3、恢复出厂设置
  如果上面提供的三个安卓手机屏幕闪烁解决方法还是不能帮助大家解决实际问题的话建议大家将手机送到维修中心看看,检查下是不是硬件问题。
& (收藏本站)
提示:支持键盘“← →”键翻页后使用快捷导航没有帐号?
 论坛入口:
  |   |    |   | 
Android游戏开发经验分享:游戏开发中图片的不同分辨率适配
2D图形&3D图形&
  手机游戏开发不同于其实客户端开发,因为手机中有太多的分辨率了,VGA = 640 * 480;WVGA = 800 * 480;FWVGA = 854 * 480;像平板的分辨率达到WSVGA的以及WXGA的等等,而且现在是屏幕日益增大化的趋向年代,手机的分辨率已经快赶超平板了。这对于手机端软件游戏开发也是一个考验,其中重要的一个问题就是图片的适配了。
  Android提供几个文件夹drawable-hdpi、drawable-ldpi. drawable-xhdpi .drawable-mdpi 来各种分辨率图片,但显然已经无法满足现在的要求。你总不能为每一个分辨率都准备一套图片吧,游戏容量暂不考虑,就是在图片数量上也是天文数字了,因为手机都是日益更新换代的,以后无数的分辨率都会被手机厂商研发出来,那纠结如何做才能适配各种分辨率呢?其中一个图片自适应屏幕实现自动根据手机分别率来放大图与缩小图就是一个很实用的解决方法。
  原理:
  假如你做的游戏是适配在屏幕800*480分辨率的手机,你有一张背景图,放置在手机中,大小也是800*480,正好背景是填充整个屏幕。但当放在分辨率为960*540的分辨率手机上,则会显示黑边。如何适配在960*540的分辨率手机上呢?我们可以通过Bitmap对象图片的自动放大缩小图片来实现,而图片放大缩小的相对倍数即为:
  x方向:960÷800= 1.2
  y方向:540÷480=1.125
  放置的图片放大缩小后,同时放置的坐标位置也要改变。假如在800*480的分辨率上,图片放置的坐标位置是80*48,而放在960*540的分辨率上的坐标相对位置是:
  x轴:960÷(800÷80)= 96
  y轴:540÷(480÷48)= 54
  其他相对分辨率也是如此,即可得出不同分辨率的图片缩放与坐标位置的方法:
/**
& & & &&&* 适配各个分辨率的图片处理方法,游戏内图以800*480为基准。
& & & &&&* @param adr 传入图片在assets文件夹里的地址,图片是放入Android的assets文件夹内为准的,如传入&a.png&即为assets里的a.png图片文件。
& & & &&&* @param context 传入的context。
& & & &&&* @return 缩放完毕后返回的Bitmap图片变量。
& & & &&&*/
& & & & public static Bitmap getNewBitmap(String adr,Context context){
& & & & & & & & Bitmap bmp =
& & & & & & & & try {
& & & & & & & & & & & & InputStream is0 = context.getAssets().open(adr);
& & & & & & & & & & & & bmp = BitmapFactory.decodeStream(is0);
& & & & & & & & & & & & Matrix matrix = new Matrix();
& & & & & & & & & & & & float sx = (float)(GameSurfaceView.screenW/800.0);
& & & & & & & & & & & & float sy = (float)(GameSurfaceView.screenH/480.0);
& & & & & & & & & & & & matrix.postScale(sx, sy);
& & & & & & & & & & & & bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
& & & & & & & & & & & &
& & & & & & & & } catch (IOException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & } catch (OutOfMemoryError e) {
& & & & & & & & & & & & //当内存溢出发生OOM的时候,捕捉并处理
& & & & & & & && & & & & & e.printStackTrace();
& & & & & & & & }
& & & & & & & &
& & & & }复制代码/**
& & & &&&* 计算图片X轴坐标的相对位置,以800为基准的
& & & &&&* @param a 放入的X轴坐标
& & & &&&* @return 返回相对位置的X轴坐标
& & & &&&*/
& & & & public static float jisuanX(float a){
& & & & & & & &
& & & & & & & & if(a != 0 )
& & & & & & & & & & & & b = (float) (GameSurfaceView.screenW/(800.0/a));
& & & & & & & & else
& & & & & & & & & & & & b = 0;
& & & & & & & &
& & & & /**
& & & &&&* 计算图片Y轴坐标的相对位置
& & & &&&* @param a 放入的Y轴坐标,以480为基准的
& & & &&&* @return 返回相对位置的Y轴坐标
& & & &&&*/
& & & & public static float jisuanY(float a){
& & & & & & & &
& & & & & & & & if(a != 0 )
& & & & & & & & & & & & b = (float)(GameSurfaceView.screenH/(480.0/a));
& & & & & & & & else
& & & & & & & & & & & & b = 0;
& & & & & & & &
& & & & }复制代码
  相关阅读:
via:IT大道
关注我们官方微信公众号
下载我们官方APP-游戏行
关注手游动态微信公众号
知名战队资不抵债 OMG拟转让36%股权《绝地求生》销量超过1300万份 开发商成立全国首个篮球电竞嘉年华
看NBA2Konline如全球50大手游开发商:腾讯网易分列三四位延安:重点扶持上市企业英雄互娱完成Pre-IP闪电鱼Boltfish新游《29天》上线即获中港澳
微信扫一扫关注我们→

参考资料

 

随机推荐