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); //注意加上。不加会出现图片和文字混淆在一起
}
Android获取图片实际大小兼容平板电脑的更多相关文章
- 限制Xamarin获取图片的大小
限制Xamarin获取图片的大小在App开发中,经常会使用网络图片.因为这样不仅可以减少App的大小,还可以动态更新图片.但是手机使用网络环境千差万别.当网络环境不是理想的情况下,加载网络图片就是一个 ...
- 获取图片的大小(宽高):BytesIO
获取图片的大小(宽高) from io import BytesIO,StringIO import requests from PIL import Image img_url = "ht ...
- imagick获取图片的大小bug
<? php /* imagick的获取图片的高度和宽度函数有问题,使用GD函数可获得正确结果 gd函数 array getimagesize ( string $filename [, arr ...
- js获取图片原始大小
摘要: 浏览器中显示的图片大小未必是他真实的高和宽,比如像下面这样,我们给他加上宽和高的样式 <img src="IE.png" style="width:25px ...
- android 获取图片
Android获取手机或者内存卡里面的图片有两种方式 1.这是通过一种action Intent intent=new Intent(); intent.setAction(Intent.ACTION ...
- Java不需要加载整张图片而获取图片的大小
转载地址 http://blog.jdk5.com/zh/java-get-image-size-without-loading-the-whole-data/ 利用Java类,获取图片的类型,宽度和 ...
- android 获取 图片或视频略缩图
/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根 ...
- Android获取 应用程序大小,数据大小,缓存大小
在项目中创建,android.content.pm 包名.里面创建两个aidl文件.PackageStats.aidl 和 IPackageStatsObserver.aidl. PackageSt ...
- Android获取屏幕的大小与密度的代码
Android项目开发中很多时候需要获取手机屏幕的宽高以及屏幕密度来进行动态布局,这里总结了三种获取屏幕大小和屏幕密度的方法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
随机推荐
- Object类方法简介二
在学了Object类前面的三个常用方法后,又遇到它的另外三个方法——clone().finalize().getClass(),这三个方法不经常使用,但因为在学习过程遇到了,就简单的对它们的使用做一个 ...
- c28---const
// // main.c // const关键字,节省内存空间,放在字符表里面, #include <stdio.h> int main(int argc, const char * ar ...
- TextView高级
前言 开门见山,这一篇博客主要讲一下在Android开发中,UI控件TextView的一些使用方式,并且通过四个例子实现一般项目中需要的效果来讲解TextView的使用.并且在之后的一段时间之内,都会 ...
- 无序列表属性 隐藏方式 JS简介
今天考试了,整理一下错题. 1.无序列表的属性 list-style 分为三小类 (1)list-style-type none:无标记. disc:实心圆(默认). circle:空心圆. squa ...
- 原生js做h5小游戏之打砖块
前言 首先,先说明一下做这个系列的目的:其实主要源于博主希望熟练使用 canvas 的相关 api ,同时对小游戏的实现逻辑比较感兴趣,所以希望通过这一系列的小游戏来提升自身编程能力:关于 es6 语 ...
- Android GoogleMap 谷歌地图从零开始
说明 由于国内使用v2最新的谷歌地图有很多限制,所有如果要在真机上测试运行要做一些准备 准备1: vpn必不可少啦 推荐cloud vpn或者betternet都是不错的免费vpn 准备2: 由于最新 ...
- Java中将JSON格式的数据转换成对应的Bean、Map、List数据
简单说明: 为了方便数据在客户端及服务器端的传输,有时候我们会用一些比较方便组织的数据类型,比如json.xml等传给客户端,客户端也可以重新组织数据传回服务器端.JSON和XML提供了一套比较方便的 ...
- 我的C++笔记(语句基本结构)
#include <iostream> using namespace std; int main() { unsigned char c1=24; int year; bool isLe ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面
http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...
- Nuget包含css\js等资源文件
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netst ...