怎么使用代码获取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();

}

类:

class Image implements Serializable{

private String url;

private Bitmap bitmap;

}

传递:

Image image = new Image();

imageseturl(url);

imagesetbitmap(bitmap);

intentputExtra("image", image);

获取

Image image = intentgetSerializableExtra("image");

String url = imagegeturl();

Bitmap bitmap =imagegetbitmap();

方法/步骤

1

如下图所示,需要根据URL地址获取加载到图中Anroid机器人所在的位置,这是运行前的效果:

2

首先需根据URL地址获取,如下所示,urladdr即为地址,返回Drawable对象:

//download image from network using @urladdress

private Drawable loadImageFromNetwork(String urladdr) {

// TODO Auto-generated method stub

Drawable drawable = null;

try{

//judge if has picture locate or not according to filename

drawable = DrawablecreateFromStream(new URL(urladdr)openStream(), "imagejpg");

}catch(IOException e){

Logd("test",egetMessage());

}

if(drawable == null){

Logd("test","null drawable");

}else{

Logd("test","not null drawable");

}

return drawable;

}

3

获取到后,需要更新主线程UI资源,考虑到时间以及界面反应延迟等,所以采用线程加以处理,如下图所示:

// image

new Thread(new Runnable(){

Drawable drawable = loadImageFromNetwork(urladdress);

@Override

public void run(){

//post() is quite important,update pictures in UI main thread

imagepost(new Runnable(){

@Override

public void run(){

//TODO Auto-generated method stub

imagesetImageDrawable(drawable);

}

});

}

//download image from network using @urladdress

private Drawable loadImageFromNetwork(String urladdr) {

// 略(如 1 中所示)

}

})start(); //线程启动

4

说明:在上述示例代码中,image是ImageView类的一个对象,也就是APP中的一个显示图像组件,利用获取到的drawable去更新image,运行效果如下所示:

方式:以R文件方式

路径:假设 res/drawable下有 testjpg文件

Bitmap bitmap=BitmapFactorydecodeResource(thisgetContext()getResources(), Rdrawabletest)

三种方式:

现总结以下几种读取Bitmap的方法:

以文件流的方式,假设在sdcard下有 testpng

FileInputStream fis = new FileInputStream("/sdcard/testpng");

Bitmap bitmap  = BitmapFactorydecodeStream(fis);

以R文件的方式,假设 res/drawable下有 testjpg文件

Bitmap  bitmap = BitmapFactorydecodeResource(thisgetContext()getResources(), Rdrawabletest);

以ResourceStream的方式,但不用到R文件

Bitmapbitmap=BitmapFactorydecodeStream(getClassgetResourceAsStream(“/res/drawable/testpng”)

以上就是关于怎么使用代码获取android中图片资源名称全部的内容,包括:怎么使用代码获取android中图片资源名称、Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片、android中怎么跳转到相册获取照片并得到url等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9584357.html

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

发表评论

登录后才能评论

评论列表(0条)

保存