在Java代码中虽然可以直接通过R.drawable.图片名(注:不带后缀)引用,但难免还有使用相对路径引用的需求(比如我...),所以特以记之
注:我引用的图片资源是eclipse自带的机器人图片
代码如下:
package com.example.fragmenttest01; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.app.Activity; import android.content.pm.ApplicationInfo; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class GetResImageActivity extends Activity { Button button;//获取图片资源btn ImageView imageview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_get_res_image); button = (Button) findViewById(R.id.button); imageview = (ImageView) findViewById(R.id.imageview); button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { imageview.setImageBitmap(getRes("ic_launcher")); } }); } //获取Res下的drawable文件夹下图片资源 private Bitmap getRes(String imageName) { ApplicationInfo appInfo = this.getApplicationInfo(); int resID = getResources().getIdentifier(imageName, "drawable", appInfo.packageName); return BitmapFactory.decodeResource(getResources(), resID); } }
xml布局如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".GetResImageActivity" > <ImageView android:id="@+id/imageview" android:background="#99CC99" android:layout_width="150dp" android:layout_height="150dp"/> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="获取Res下图片" /> </RelativeLayout>
最后效果图:
未引用前:
点击引用后:
完成
ImageView通过相对路径引用Res/drawable下图片
原文:https://www.cnblogs.com/a284390/p/10918213.html