android获取图片的大小
Ⅰ Android程序开发如何获取图片的属性值,如图片的大小(KB)、上传或拍摄时间……
将图片当作普通文件处理
File file = new File("/sdcard/demo.jpg");
FileInputStream fis = new FileInputStream(file);
int fileLen = fis.available();
Ⅱ android缩放图片到指定大小显示的两种方法
第一种用 BitmapFactory.Options
先用 options.inJustDecodeBounds = true; 只加载获得图片的宽高,获得相应的sampleSize,然后再次解析即可。
但是这样有个坑是,没办法获得指定大小的图,只能是2的幂次方。所以最终获取的宽高小于等于指定大小。
第二种 用矩阵 Matrix ,可以缩放到指定大小。
根据scale
Ⅲ android 怎么获取网络图片的宽高
这个需要后台去先给数值,你也可以用二次采样获取自己想要的宽高
Ⅳ android 从服务器端获取图片,有的图片太大了,要压缩,但我不知道要压缩到什么样的尺寸合适。
根据你的imageiew大小来定,同时要注意长宽比
如果原图的长宽比大于你的imageiew的长宽比,按长度的比例来缩放
反之按宽度来
如果正好相等,那么哪一个都可以了。
Ⅳ android怎么获取图片的大小
1、控制大小和位置
/*
* 获取对话框的窗口对象及参数对象以修改对话框的布局设置,
* 可以直接调用getWindow(),表示获得这个Activity的Window
* 对象,这样这可以以同样的方式改变这个Activity的属性.
*/
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
/*
* lp.x与lp.y表示相对于原始位置的偏移.
* 当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.
* 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.
* 当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.
* 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.
* 当参数值包含Gravity.CENTER_HORIZONTAL时
* ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.
* 当参数值包含Gravity.CENTER_VERTICAL时
* ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.
* gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL |
* Gravity.CENTER_VERTICAL.
*
* 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在
* 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
* Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离
*/
lp.x = 100; // 新位置X坐标
lp.y = 100; // 新位置Y坐标
lp.width = 300; // 宽度
lp.height = 300; // 高度
lp.alpha = 0.7f; // 透明度
// 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
// dialog.onWindowAttributesChanged(lp);
dialogWindow.setAttributes(lp);
/*
* 将对话框的大小按屏幕大小的百分比设置
*/
// WindowManager m = getWindowManager();
// Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
// WindowManager.LayoutParams p = getWindow().getAttributes(); // 获取对话框当前的参数值
// p.height = (int) (d.getHeight() * 0.6); // 高度设置为屏幕的0.6
// p.width = (int) (d.getWidth() * 0.65); // 宽度设置为屏幕的0.95
// dialogWindow.setAttributes(p);
Ⅵ android 获取的图片尺寸比图片属性显示的尺寸大很多
起因是测试在测试过程中发现需要裁剪的图片看不到,但是还能继续裁剪。
所以就检查代码,发现了bitmap的width和Height有3000多。
然后试了下把图片改成300*300的就显示正常,
所以我们需要让图片根据大小不同,机器不同而改变图片的宽高
//设置分辨率
//1.获取系统分辨率
Resources resources = this.getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
//2.获取图片分辨率
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;// 这个方式不会在内存创建一张图片,
Bitmap bitmap = BitmapFactory.decodeFile(filePath, options); //此时返回的bitmap为null,但是option会保留一部分参数
//3.确定分辨率
int height = options.outHeight;
int width = options.outWidth;
if(options.outHeight>dm.heightPixels*1.5f){//当图片大小比屏幕大1.5倍的时候,直接以系统高度为高度
height = dm.heightPixels;
}
if (options.outWidth>dm.widthPixels*1.5f){
width = dm.widthPixels;
}
options.inJustDecodeBounds = false;
Ⅶ android 编程 如何确定图片的大小
图片是本地的吗?
如果是本地图片,可以通过BitmapFactory.decodeResource(res,id);
来获取到这个Bitmap,获取到这个Bitmap,你要的大小都出来了啊.
如果是网络图片,也可以通过BitmapFactory的获取.