android 怎样取得drawable资源的图片地址
时间: 2023-10-15 17:03:55 浏览: 92
在 Android 中,获取 drawable 资源的图片地址并不是一个直接的过程。因为应用程序的 drawable 资源是被编译进 APK 包中的,因此无法直接获取其文件路径。
但是,你可以通过以下方式来获取 drawable 资源的图片地址:
1. 使用 getResources() 方法获取资源的资源 ID:
```java
int resourceId = getResources().getIdentifier("drawable_name", "drawable", getPackageName());
```
这个方法会返回一个整型的资源 ID,这个 ID 可以用来获取对应的 drawable 资源。
2. 使用 BitmapFactory.decodeResource() 方法获取 Bitmap 对象:
```java
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId);
```
这个方法会返回一个 Bitmap 对象,这个对象包含了 drawable 资源的图片数据。
注意:获取 drawable 资源的图片地址并不是一个常规的操作,因为 drawable 资源通常是以二进制形式编译进应用程序的。因此,你应该尽可能地避免直接获取 drawable 资源的图片地址,而是尽可能使用资源 ID 或者 Bitmap 对象来操作图片。
相关问题
android 图片 drawable,在android中Drawable图片使用教程
在Android中,Drawable是一种可绘制的图像对象,可以用于绘制各种形状的图像,如位图、矢量图等。下面是使用Drawable图片的教程:
1. 创建Drawable资源文件
在Android Studio中,可在res/drawable目录下创建Drawable资源文件,支持的文件格式包括PNG、JPG、GIF等。例如,创建一个名为ic_launcher的PNG图片文件,可在drawable目录下创建ic_launcher.png文件。
2. 在布局文件中引用Drawable资源
在布局文件中,可通过ImageView控件引用Drawable资源,例如:
```
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
```
其中,@drawable/ic_launcher表示引用名为ic_launcher的Drawable资源。
3. 在代码中引用Drawable资源
在代码中,可通过Context的getDrawable()方法获取Drawable资源,例如:
```
Drawable drawable = context.getDrawable(R.drawable.ic_launcher);
```
其中,R.drawable.ic_launcher表示引用名为ic_launcher的Drawable资源的ID。
4. 设置Drawable图片的属性
Drawable图片可以设置不同的属性,例如透明度、边框、大小等。可通过代码方式设置Drawable图片的属性,例如:
```
Drawable drawable = context.getDrawable(R.drawable.ic_launcher);
// 设置透明度为50%
drawable.setAlpha(128);
// 设置边框为红色,宽度为2dp
drawable.setStroke(2, Color.RED);
// 设置大小为50dp * 50dp
drawable.setBounds(0, 0, 50, 50);
```
以上是使用Drawable图片的教程,希望对您有所帮助。
android 名称查找drawable 图片
在Android开发中,我们可以通过名称来查找drawable图片。首先,我们需要将要查找的图片放置在/res/drawable目录中。然后,在代码中,我们可以使用以下方法来查找图片:
1. getResources().getDrawable(int resid):这个方法接受一个资源ID作为参数,并返回一个Drawable对象。我们可以通过在res目录下的R.drawable类中查找对应的资源ID来使用该方法。
示例代码如下:
```java
Drawable drawable = getResources().getDrawable(R.drawable.my_image);
```
2. ContextCompat.getDrawable(Context context, int resId):这个方法也接受一个资源ID作为参数,并返回一个Drawable对象。与上述方法不同的是,这个方法还需要传入一个Context对象,通常使用当前Activity作为Context参数。
示例代码如下:
```java
Drawable drawable = ContextCompat.getDrawable(this, R.drawable.my_image);
```
在以上两种方法中,传入的资源ID应该是一个整数值,该值对应于/res/drawable目录下的图片资源的名称,如"my_image"。需要注意的是,如果在XML文件中设置了不同的配置(如不同的语言或屏幕大小),则系统会根据当前配置查找匹配的图片资源。
总结起来,通过以上两种方法,我们可以根据名称来查找drawable图片,并将其应用于我们的Android应用程序中。