❶ android图片太大如何获取图片尺寸然后缩放
用这个方法吧
//加载需要操作的图片,这里是一张图片
bitmap
bitmaporg
=
bitmapfactory.decoderesource(getresources(),r.drawable.r);
//获取这个图片的宽和高
int
width
=
bitmaporg.getwidth();
int
height
=
bitmaporg.getheight();
//定义预转换成的图片的宽度和高度
int
newwidth
=
200;
int
newheight
=
200;
//计算缩放率,新尺寸除原始尺寸
float
scalewidth
=
((float)
newwidth)
/
width;
float
scaleheight
=
((float)
newheight)
/
height;
//
创建操作图片用的matrix对象
matrix
matrix
=
new
matrix();
//
缩放图片动作
matrix.postscale(scalewidth,
scaleheight);
❷ 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 从服务器端获取图片,有的图片太大了,要压缩,但我不知道要压缩到什么样的尺寸合适。
根据你的imageiew大小来定,同时要注意长宽比
如果原图的长宽比大于你的imageiew的长宽比,按长度的比例来缩放
反之按宽度来
如果正好相等,那么哪一个都可以了。
❹ android 怎么获取网络图片的宽高
这个需要后台去先给数值,你也可以用二次采样获取自己想要的宽高
❺ 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怎么获取drawble图片高宽
先找到这个控件,把drawble转换成bitmap,然后获取bitmap的宽高即可。主要代码如下:
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.id.XXX);
int height = bitmap.getHeight();
int width= bitmap.getWidth();
最后,祝你早日解决问题。
❼ Android程序开发如何获取图片的属性值,如图片的大小(KB)、上传或拍摄时间……
将图片当作普通文件处理
File file = new File("/sdcard/demo.jpg");
FileInputStream fis = new FileInputStream(file);
int fileLen = fis.available();