Android4.4中设置壁纸----壁纸显示不全
2015-07-21 10:26
441 查看
基于Android4.4智能TV平台,最近有客户说设置壁纸后,壁纸总是截取一部分显示,导致整张图片显示不全。
原因是在设置壁纸的时候,由于分辨率的问题,导致有图片是截图显示或是拉伸显示。例如,平台的分辨率是1280*720,如果要显示的壁纸分辨率正好是1280*720,则正好能够满屏显示。如果要显示的壁纸分辨率是1650*1050,则会被截图显示,最后看到额效果就是显示不全。如果要显示的壁纸是720*480,则会被拉伸,显示的时候由于比例问题也会被截取而显示不全。
解决办法就是在设置壁纸之前得到平台分辨率,然后根据平台分辨率缩放需要显示的壁纸,缩放后再设置壁纸。这样壁纸的分辨率与平台的分辨率一致,就是正好满屏不截取显示。
缩放函数:
设置壁纸:
至于decodeBitmap,后续补上。
原因是在设置壁纸的时候,由于分辨率的问题,导致有图片是截图显示或是拉伸显示。例如,平台的分辨率是1280*720,如果要显示的壁纸分辨率正好是1280*720,则正好能够满屏显示。如果要显示的壁纸分辨率是1650*1050,则会被截图显示,最后看到额效果就是显示不全。如果要显示的壁纸是720*480,则会被拉伸,显示的时候由于比例问题也会被截取而显示不全。
解决办法就是在设置壁纸之前得到平台分辨率,然后根据平台分辨率缩放需要显示的壁纸,缩放后再设置壁纸。这样壁纸的分辨率与平台的分辨率一致,就是正好满屏不截取显示。
缩放函数:
public static Bitmap scaleBitmap(Bitmap srcBitmap, int targetWidth, int targetHeight) { int srcWidth = srcBitmap.getWidth(); int srcHeight = srcBitmap.getHeight(); float scaleWidth = ((float) targetWidth) / srcWidth; float scaleHeight = ((float) targetHeight) / srcHeight; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); //缩放 return Bitmap.createBitmap(srcBitmap, 0, 0, srcWidth, srcHeight, matrix, true); }
设置壁纸:
final String fullPath = mPhotoFileList.get(mCurrentPosition).getPath(); final WallpaperManager wpm = (WallpaperManager) getSystemService(Context.WALLPAPER_SERVICE); final Bitmap bitmap = decodeBitmap(fullPath); if (bitmap == null) { Log.e(TAG, "Couldn't get bitmap for path!!"); } else { try { Bitmap scaledBitmap = scaleBitmap(bitmap, mWindowWidth, mWindowHeight); int bitmapWidth = scaledBitmap.getWidth(); int bitmapHeight = scaledBitmap.getHeight(); wpm.suggestDesiredDimensions(bitmapWidth, bitmapHeight); wpm.setBitmap(scaledBitmap); mHandler.sendEmptyMessage(SHOW_TOAST); } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "Failed to set wallpaper."); } }
至于decodeBitmap,后续补上。
相关文章推荐
- 黑马66期android学习笔记01-手机制式
- 关于向Android项目中的drawable下添加图片却无法使用的问题
- android常用对话框封装
- android从资源文件中读取文件流并显示的方法
- 各种android下载资源
- android与服务器交互总结(json,post,xUtils,Volley,Gson)
- 用一个二维码做下载地址,自动区分是 ios 还是 android
- Android性能调优之内存篇
- Android访问权限大全
- 关于讯飞 使用android SDK出现21001错误码的分析
- Android中捕捉menu按键点击事件的方法
- android中处理异常崩溃
- android从系统图库中取图片的实例代码
- Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换
- Android Studio SDK 更新问题
- xml布局内容总结(一)--Android
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
- [Android]使用draw9patch制作可拉伸图片
- android通过Location API显示地址信息的实现方法
- Android开发者学习必备:10个优质的源码供大家学习