当前位置:首页 > 编程开发

Android图片大小调整动态实现方法

webgou17年前 (2010-08-08)编程开发418

Android操作系统中对于图片的操作我们在以前的文章中也有所介绍。不过对于图片的大小调整往往都局限于固定的调整。如何才能满足动态大小调整呢?我们在这里就为大家详细介绍有关Android图片大小调整的动态实现方法。

昨天,动态获取图片资源获取的很爽啊,后来,换了一张png,128*128的,Run as android application,天哪,居然覆盖了我大半个屏幕,都不留一点情面给我展示了。。。。看来,必须要找个方法让图片自适应大小,于是修改了一下获取图 片的代码,让图片能自适应。

一下就是Android图片大小调整的相关代码示例:

  1. view plaincopy to clipboardprint?  
  2. private Bitmap getImageFromAssetFile(String fileName,int how){   
  3. Bitmap image = null ;   
  4. try {   
  5. AssetManager am = game.getAssets();   
  6. InputStream is = am.open(fileName);   
  7. image = BitmapFactory.decodeStream(is);   
  8. is.close();   
  9. }catch (Exception e){   
  10. }   
  11. return zoomImage(image,how);   
  12. }   
  13. public Bitmap zoomImage(Bitmap bgimage,int how) {   
  14. int bmpwidth = bgimage.getWidth();   
  15. int bmpheight = bgimage.getHeight();   
  16. float scaleWidth=0;   
  17. float scaleHeight=0;   
  18. Matrix matrix = new Matrix();   
  19. if(how==0){   
  20. scaleWidth = ((float) width) / bmpwidth;   
  21. scaleHeight = ((float) height) / bmpheight;   
  22. }else{   
  23. scaleWidth=Math.min(width,height)/bmpwidth;   
  24. scaleHeight=Math.min(width, height)/bmpheight;   
  25. }   
  26. private Bitmap getImageFromAssetFile(String fileName,int how){   
  27. Bitmap image = null ;   
  28. try {   
  29. AssetManager am = game.getAssets();   
  30. InputStream is = am.open(fileName);   
  31. image = BitmapFactory.decodeStream(is);   
  32. is.close();   
  33. }catch (Exception e){   
  34. }   
  35. return zoomImage(image,how);   
  36. }   
  37. public Bitmap zoomImage(Bitmap bgimage,int how) {  
  38. int bmpwidth = bgimage.getWidth();  
  39. int bmpheight = bgimage.getHeight();  
  40. float scaleWidth=0;  
  41. float scaleHeight=0;  
  42. Matrix matrix = new Matrix();  
  43. if(how==0){  
  44. scaleWidth = ((float) width) / bmpwidth;  
  45. scaleHeight = ((float) height) / bmpheight;  
  46. }else{  
  47. scaleWidth=Math.min(width,height)/bmpwidth;  
  48. scaleHeight=Math.min(width, height)/bmpheight;  
  49. }  

其中,scaleWidth和scaleHeight是欲缩放后的大小,这里加个参数how是防止有不需要缩放的情况~

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=234

标签: android界面
分享给朋友:

“Android图片大小调整动态实现方法” 的相关文章

wince串口蓝牙

 第一步,如果你是一个刚开始搞蓝牙的人,那么,就先用wince自带的 bthcsr 驱动来测试是否正常与主机通信(也测试BT是否是好的) 在注册表加入(这些内容在一份bchs-srn-004_wpp…

Agent 到底是什么?从 AI 聊天到自主执行

Agent 并不是“更聪明的聊天机器人”,也不是简单地给大模型套一层 UI。它更接近一种新的软件系统:以大语言模型作为决策核心,通过工具与外部世界交互,并围绕目标持续执行任务。…

VC/MFC 临界区使用方法事例

    临界区的作用:避免临界区内的数据(一般为共享的资源)被不同的线程同时访问,实现线程的同步操作。保证只能由先进入临界区的一个线程访问结束后,其他线程才可以继续访问共享的资源。 以下为临界区的使用方法: *.h头文件: #include <winbase.h&…

Windows CE下操作GPIO的方法(以ARM9 S3C2410为例)

GPIO 是ARM芯片最基本的输入输出通道,在ADS下操作就是一个单片机工作,直接读写其寄存器。在ARM9平台上,Windows CE系统将GPIO的实地址(例如2410的GPIO的基地址为0x56000000)映射到虚拟地址空间(GPIO对应为0xB1600000),这 样,通过对这段虚拟地…

iOS开发中常见的语句@synthesize obj=_obj的意义详解

  我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解Objective-C中对类、类的…

Eclipse中65536问题记录

[2017-05-11 12:22:00 - Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536[2017-05-11 12:22:00 - app] Conversion to Dalvik format f…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。