
<ImageView
android:id="@+id/img_face"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="8dp"
android:padding="8dp"
android:src="@drawable/face"
/>
try{
//查找imgview控件
ImageView v=(ImageView)thisfindViewById(Ridimg_face);
// 动态修改imageview 背景, android:src 设置backgroundRes 也可以。
vsetImageResource( Rdrawableface1 );
}catch(Exception e){
eprintStackTrace();
}
1、控制大小和位置
/
可以直接调用getWindow(),表示获得这个Activity的Window
对象,这样这可以以同样的方式改变这个Activity的属性
/
Window dialogWindow = dialoggetWindow();
WindowManagerLayoutParams lp = dialogWindowgetAttributes();
dialogWindowsetGravity(GravityLEFT | GravityTOP);
/
lpx与lpy表示相对于原始位置的偏移
当参数值包含GravityLEFT时,对话框出现在左边,所以lpx就表示相对左边的偏移,负值忽略
当参数值包含GravityRIGHT时,对话框出现在右边,所以lpx就表示相对右边的偏移,负值忽略
当参数值包含GravityTOP时,对话框出现在上边,所以lpy就表示相对上边的偏移,负值忽略
当参数值包含GravityBOTTOM时,对话框出现在下边,所以lpy就表示相对下边的偏移,负值忽略
当参数值包含GravityCENTER_HORIZONTAL时
,对话框水平居中,所以lpx就表示在水平居中的位置移动lpx像素,正值向右移动,负值向左移动
当参数值包含GravityCENTER_VERTICAL时
,对话框垂直居中,所以lpy就表示在垂直居中的位置移动lpy像素,正值向右移动,负值向左移动
gravity的默认值为GravityCENTER,即GravityCENTER_HORIZONTAL |
GravityCENTER_VERTICAL
本来setGravity的参数值为GravityLEFT | GravityTOP时对话框应出现在程序的左上角,但在
我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
GravityLEFT, GravityTOP, GravityBOTTOM与GravityRIGHT都是如此,据边界有一小段距离
/
lpx = 100; // 新位置X坐标
lpy = 100; // 新位置Y坐标
lpwidth = 300; // 宽度
lpheight = 300; // 高度
lpalpha = 07f; // 透明度
// 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
// dialogonWindowAttributesChanged(lp);
dialogWindowsetAttributes(lp);
/
将对话框的大小按屏幕大小的百分比设置
/
// WindowManager m = getWindowManager();
// Display d = mgetDefaultDisplay(); // 获取屏幕宽、高用
// WindowManagerLayoutParams p = getWindow()getAttributes(); // 获取对话框当前的参数值
// pheight = (int) (dgetHeight() 06); // 高度设置为屏幕的06
// pwidth = (int) (dgetWidth() 065); // 宽度设置为屏幕的095
// dialogWindowsetAttributes(p);
起因是测试在测试过程中发现需要裁剪的看不到,但是还能继续裁剪。
所以就检查代码,发现了bitmap的width和Height有3000多。
然后试了下把改成300300的就显示正常,
所以我们需要让根据大小不同,机器不同而改变的宽高
//设置分辨率
//1获取系统分辨率
Resources resources = thisgetResources();
DisplayMetrics dm = resourcesgetDisplayMetrics();
//2获取分辨率
BitmapFactoryOptions options = new BitmapFactoryOptions();
optionsinJustDecodeBounds = true;// 这个方式不会在内存创建一张,
Bitmap bitmap = BitmapFactorydecodeFile(filePath, options); //此时返回的bitmap为null,但是option会保留一部分参数
//3确定分辨率
int height = optionsoutHeight;
int width = optionsoutWidth;
if(optionsoutHeight>dmheightPixels15f){//当大小比屏幕大15倍的时候,直接以系统高度为高度
height = dmheightPixels;
}
if (optionsoutWidth>dmwidthPixels15f){
width = dmwidthPixels;
}
optionsinJustDecodeBounds = false;
以上就是关于怎么使用代码获取android中图片资源名称全部的内容,包括:怎么使用代码获取android中图片资源名称、android怎么获取图片的大小、android 获取的图片尺寸比图片属性显示的尺寸大很多等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)