怎么使用代码获取android中图片资源名称

怎么使用代码获取android中图片资源名称,第1张

<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 获取的图片尺寸比图片属性显示的尺寸大很多等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9296106.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存