Android获取图片实际大小兼容平板电脑

项目中有个图片在平板电脑中显示特别小的原因,一直苦于没找到原因,也没有平板电脑测试,今天找了个修改分辨率的,编写相关方法终于处理了,记录下比较:

好让以后不造轮子。

主要是获取文章相关图片显示问题,直接用getIntrinsicWidth()方法获取,getIntrinsicWidth()获取的并非图片的实际宽度,在手机看还过得去,不会相差太远,但在平板电脑看,

它简直就是一个小女孩,太害羞了,以至于显示那么小。

回到正题:

解决方法:

1.获取手机分辨率 用该分辨率乘以其密度

   if (file.exists()) {
            // 如果文件已经存在,直接返回
            Drawable drawable = Drawable.createFromPath(savePath);
            DisplayMetrics  dm = new DisplayMetrics();
            //获取手机屏幕分辨率
            dm = context.getResources().getDisplayMetrics();
             //屏幕实际大小
             //  int screenWidth = dm.widthPixels;
             //  int screenHeight = dm.heightPixels;
             float density = dm.density;
             //图片实际大小
             int imgWidth = (int) (drawable.getIntrinsicWidth() *density);
             int imgHeight = (int)( drawable.getIntrinsicHeight() * density);
             //drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
              drawable.setBounds(0, 0, imgWidth,imgHeight);
            //}
            return drawable;

        }

没有图片时加载

private void setDrawable(Drawable nDrawable) {
            drawable = nDrawable;
            //drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
            //setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

            DisplayMetrics  dm = new DisplayMetrics();
            //获取手机屏幕分辨率
            dm = context.getResources().getDisplayMetrics();
             //屏幕实际大小
             //  int screenWidth = dm.widthPixels;
             //  int screenHeight = dm.heightPixels;
             float density = dm.density;
             //图片实际大小
             int imgWidth = (int) (drawable.getIntrinsicWidth() *density);
             int imgHeight = (int)( drawable.getIntrinsicHeight() * density);
             //drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
              drawable.setBounds(0, 0, imgWidth,imgHeight);
              setBounds(0, 0, imgWidth, imgHeight); //注意加上,不加会出现图片和文字混淆在一起
        }

原文地址:http://hongshengpeng.com/article/show/254.aspx

Android获取图片实际大小兼容平板电脑,码迷,mamicode.com

时间: 2024-10-19 05:07:28

Android获取图片实际大小兼容平板电脑的相关文章

android获取图片的旋转角度

public static int getExifOrientation(String filepath) { int degree = 0; ExifInterface exif = null; try { exif = new ExifInterface(filepath); } catch (IOException ex) { Log.d(TAG, "cannot read exif" + ex); } if (exif != null) { int orientation =

BitmapFactory.Options详解 怎样获取图片的大小 遇到大一些的图片,遇到OOM(Out Of Memory)的问题

下面我们回到我们的主题上来:怎样获取图片的大小? 思路很简单: 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了. 新问题又来了,在通过BitmapFactory.decodeFile(Stringpath)方法将突破转成Bitmap时,遇到大一些的图片,我们经常会遇到OOM(Out Of Memory)的问题.怎么避免它呢? 这就用到了我们上面提到的BitmapFactory.Options这个类. Bitmap

android 选择图片 剪裁 拍照 兼容所有版本的代码

前言,版本兼容问题主要是由于4.4以前和4.4以后的Uri的格式不同所造成的错误 资料 Android 4.4从图库选择图片,获取图片路径并裁剪 1.拍照 和选择图片 ①选择图片 1 intent = new Intent(Intent.ACTION_GET_CONTENT); 2 intent.setType("image/*"); 3 startActivityForResult(intent, GALLERY_REQUEST_CODE);   ②拍照 1 intent = new

imagick获取图片的大小bug

<? php /* imagick的获取图片的高度和宽度函数有问题,使用GD函数可获得正确结果 gd函数 array getimagesize ( string $filename [, array &$imageinfo ] ) getimagesize() 函数将測定不论什么 GIF,JPG,PNG,SWF.SWC.PSD.TIFF,BMP,IFF.JP2,JPX.JB2.JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个能够用于普通 HTML 文件里 IMG

js获取图片原始大小

摘要: 浏览器中显示的图片大小未必是他真实的高和宽,比如像下面这样,我们给他加上宽和高的样式 <img src="IE.png" style="width:25px;height:25px;"> 这样在浏览器中显示的大小就是25px.那么我们如何获取图片的真实大小呢?,下面的代码就实现了这个功能 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv=&quo

Android 获取图片或视频略缩图

/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图. 2. * 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使 用这个工具生成的图像不会被拉伸. * * @param imagePath * 图像的路径 * @param width * 指定输出图

android 获取 图片或视频略缩图

/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图. 2. * 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使 用这个工具生成的图像不会被拉伸. * * @param imagePath * 图像的路径 * @param width * 指定输出图

Android 获取图片exif信息

使用android api读取图片的exif信息 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_p

android获取设备屏幕大小的方法

// 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); System.out.println("heigth : " + dm.heightPixels); System.out.println("width : " + dm.widthPixels); // 通过Resources获取