本文实例讲述了Android编程实现等比例显示图片的方法。分享给大家供大家参考,具体如下:

在android中,由于密度的影响,如果想得到图片的宽高是不行的,具体为什么我就大概说一下,具体的请搜索度娘或者古哥吧。 原因是如果你把图片放在drawable-mdpi里,而手机是属于drawable-hdpi的话,图片是被自动放大,就这样取到的宽与高未必就是正确的。那么如何让android上面显示的图片是基于原来图片的比例呢,首先你可以在res目录下创建一个drawable-nodpi的目录,这个目录下的图片是不根据dpi的多少来进行拉伸或者缩小滴。然后,就是根据屏幕的宽 和 图片的宽高 得出图片在屏幕显示的高,宽是固定的,就是屏幕的宽,所以不用算了。

private void getWidth_Height() {

Display display = getWindowManager().getDefaultDisplay();

int width = display.getWidth(); // deprecated

int height = display.getHeight(); // deprecated

Bitmap mBitmap = createImageWithResouce(R.drawable.history4);

image.setLayoutParams(new LayoutParams(width, width / getBitmapWidth(mBitmap) * getBitmapHeight(mBitmap)));

image.setImageBitmap(createImageWithResouce(R.drawable.history4));

}

private Bitmap createImageWithResouce(int resourceID) {

Bitmap bit = BitmapFactory.decodeResource(getResources(), R.drawable.history4);

return bit;

}

private int getBitmapWidth(Bitmap bitmap){

return bitmap.getWidth();

}

private int getBitmapHeight(Bitmap bitmap){

return bitmap.getHeight();

}

// 释放bitmap

private void releaseBitmap(Bitmap bitmap){

if (bitmap!=null && !bitmap.isRecycled()) {

bitmap.recycle();

bitmap = null;

}

}

建议使用如下的这种,应用了LruCache作为管理

public class ImageUtil {

private LruCache mMemoryCache;

private final Context mContext;

private static ImageUtil imageUtil;

private static Object obj = new Object();

private int memClass;

private int cacheSize;

private ImageUtil(Context mContext) {

this.mContext = mContext;

createLruCache(mContext);

}

private void createLruCache(Context mContext) {

memClass = ((ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();

cacheSize = 1024 * 1024 * memClass / 8;

mMemoryCache = new LruCache(cacheSize) {

@Override

protected int sizeOf(String key, Bitmap value) {

// TODO Auto-generated method stub

return value.getRowBytes();

}

};

}

public static ImageUtil getInstance(Context mContext) {

if (imageUtil == null) {

synchronized (obj) {

if (imageUtil == null) {

imageUtil = new ImageUtil(mContext);

}

}

}

return imageUtil;

}

public void adjustImageSize(ImageView imageView, int imageResourceId) {

Bitmap mBitmap = null;

Display display = ((MainActivity) mContext).getWindowManager().getDefaultDisplay();

int width = display.getWidth(); // deprecated

int height = display.getHeight(); // deprecated

Bitmap bitmapCache = mMemoryCache.get(imageResourceId + "");

if (bitmapCache != null) {

mBitmap = bitmapCache;

} else {

mBitmap = createImageWithResouce(mContext, imageResourceId);

mMemoryCache.put(imageResourceId + "", mBitmap);

}

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, width

/ getBitmapWidth(mBitmap) * getBitmapHeight(mBitmap));

layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

imageView.setLayoutParams(layoutParams);

imageView.setBackgroundDrawable(new BitmapDrawable(mBitmap));

// imageView.setImageBitmap(mBitmap);

}

private static Bitmap createImageWithResouce(Context context, int resourceID) {

Bitmap bit = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);

return bit;

}

private int getBitmapWidth(Bitmap bitmap) {

return bitmap.getWidth();

}

private int getBitmapHeight(Bitmap bitmap) {

return bitmap.getHeight();

}

}

希望本文所述对大家Android程序设计有所帮助。

android 图片百分比显示,Android编程实现等比例显示图片的方法相关推荐

  1. html 设置图片显示比例,css怎么实现图片在页面上以相同等比例显示缩放?(示例)...

    在我们浏览页面时或者实际工作中,偶尔会遇到图片缩放的问题.那么本篇文章就给大家介绍关于css 图片等比例缩放即css图片等比例显示的问题.希望对有需要的朋友有所帮助. css图片等比例显示具体代码示例 ...

  2. 压缩图片大小的java代码_java按比例压缩图片的源代码,用java如何把图片处理到指定大小...

    [要分析某个网页中的代码构成,需要某个结点下的内容.用此原始方法可以得到整个网页的源码.其实更简单的方法是使用 WebClient 或 HtmlUtil 等开源方式 .public class Ht ...

  3. html图片缩小属性,CSS属性实现同比例缩小图片

    本文向大家描述一下如何使用CSS属性同比例缩小图片,一般情况下如果要把一副大图片按比例缩小到某个尺寸,对于现代浏览器,直接使用max-width和max-height两条CSS属性即可. 符合Web标 ...

  4. css实现图片在固定的盒子里等比例显示

    使用 object-fit: cover .img-box {height: 210px;width: 210px;border-radius: 8px;overflow: hidden;> i ...

  5. python 等比例缩放图片

    在对图片缩放时,可能会使得图片产生变形,以下代码按照比例缩放图片,保持长宽比. 例如原图为: 如果resize成(224,224)则图片变为 import cv2def process_image(i ...

  6. android显示图片部分区域,Android编程实现只显示图片一部分的方法

    本文实例讲述了Android编程实现只显示图片一部分的方法.分享给大家供大家参考,具体如下: 在Android应用程序中加载一张图片,然后把它显示出来这是一件非常容易的事情,那怎么才能显示一张图片的一 ...

  7. android notification 定时显示,Android编程使用Service实现Notification定时发送功能示例...

    本文实例讲述了android编程使用service实现notification定时发送功能.分享给大家供大家参考,具体如下: /** * 通过启动或停止服务来管理通知功能 * * @descripti ...

  8. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...

    前言 我们现在在随便一个手机上用手指在屏幕上滑来滑都可以去拖动图片,其实在Android里这很简单,下面我就给大家具体讲解一下. 思路   我们首先需要Gallery这个对象,俗称画廊对象,大家都知道 ...

  9. android 图片绑定按钮,Android编程实现给Button添加图片和文字的方法

    本文实例讲述了Android编程实现给Button添加图片和文字的方法.分享给大家供大家参考,具体如下: //为按钮添加图片和文字的方法 public Spanned getSpan(int id, ...

最新文章

  1. 5G前夜 运营商如何实现网络创新?
  2. Package Manager Console 向VS2010安装 EntityFramework
  3. UML中关联,聚合,组合的区别及C++实现
  4. 个人项目之电商秒杀系统总结
  5. 掌握STC单片机程序烧录方法只需要三步走
  6. C语言期末考试复习题(有答案)
  7. matlab中矩阵运算
  8. STM32F7上移植NES游戏
  9. ASP模式的机械产品分布式协同设计的研究
  10. matlab 清除命令,清空工作区代码,关闭所有窗口
  11. QT设置背景图片的三种方式
  12. 广义相加模型(GAM)及R实现
  13. FLAC3D模拟:复杂模型的建立与导入
  14. 中级工程师职称有什么作用?有含金量吗?为什么要办?甘建二
  15. wireshark解析自定义协议
  16. FICO-笔记_20211019_002
  17. 知识图谱创新FinTech,一览群智携手浪潮力推智能反洗钱
  18. 夫妻离婚财产怎么分配房屋财产
  19. centos7系统时间的修改
  20. MSP430F2111IPWR 超低功耗微控制器封装:TSSOP20

热门文章

  1. Cron表达式(七子表达式)
  2. 学习Java的第十天
  3. 电商工具时代+电商思维时代
  4. php大会2018,2018年公共卫生与预防医学国际学术会议(PHPM 2018)
  5. php微信Emoji表情处理
  6. 宇枫资本四个步骤做好投资理财
  7. DVD和CD的区别在哪里
  8. Twitter 产品设计师王源专访
  9. 手机不支持SD卡扩展
  10. jslinux-deobfuscated-network