drawable(Android开发中常用的drawable类型详解)
Android开发中,drawable是很常见的一个概念,它是一种用于存储图形化资源的类型。在Android应用开发中,我们可以通过drawable来管理、使用各种图形资源,使我们的应用界面更加美观、丰富多彩。接下来,我们就来详细了解一下Android开发中常用的drawable类型。
BitmapDrawable

BitmapDrawable是最基本的drawable类型之一,它是一个使用位图作为drawable的类型。我们可以将一张图片放到res/drawable目录下,然后通过BitmapDrawable来使用它,如下所示:
1. 获取BitmapDrawable对象:
BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(R.drawable.picture);
2. 在ImageView中使用BitmapDrawable:
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageDrawable(drawable);
使用BitmapDrawable有一个不足之处,就是图片会按照它们原本的大小显示出来,会导致图片失真或模糊。因此,在使用BitmapDrawable的时候,最好将图片放入hdpi、mdpi、ldpi文件夹下,从而避免图片失真问题。
ShapeDrawable

ShapeDrawable是一种可以绘制几何图形的drawable类型。可以通过它来绘制矩形、圆角矩形、圆形、椭圆等形状。下面是一个简单的示例代码,用于绘制一个红色圆形:
1. 定义shape.xml文件:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:shape=\"oval\">
android:size=\"20dp\"
android:color=\"#f00\"/>
2. 在layout文件中引用shape:
<ImageView
android:id=\"@+id/imageView\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:src=\"@drawable/shape\" />
LayerDrawable

LayerDrawable是一种可以将多个drawable叠加起来形成一个图层的类型。例如,我们可以在一个ImageView上同时显示一张图片和一个有颜色的图形背景。下面是一个简单的示例代码:
1. 定义layer.xml文件:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">
<item android:drawable=\"@color/background_color\" />
<item android:drawable=\"@drawable/picture\" />
</layer-list>
2. 在layout文件中引用layer:
<ImageView
android:id=\"@+id/imageView\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:src=\"@drawable/layer\" />
StateListDrawable

StateListDrawable是一种可以根据当前状态来显示不同图片的drawable类型。例如,我们可以定义一个StateListDrawable,当按下按键的时候,显示另外一张图片。下面是一个简单的示例代码:
1. 定义selector.xml文件:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">
<item android:drawable=\"@drawable/picture1\" android:state_pressed=\"true\"/>
<item android:drawable=\"@drawable/picture2\" />
</selector>
2. 在layout文件中引用selector:
<ImageView
android:id=\"@+id/imageView\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:src=\"@drawable/selector\" />
NinePatchDrawable

NinePatchDrawable是一种可以缩放并且不会失真的图片类型,也称为点九图。在Android开发中,我们经常用它来绘制按钮的背景。下面是一个简单的示例代码:
1. 定义.9.png文件:
在Android Studio中,可以通过右键->New->Image Asset来生成点九图。
2. 在layout文件中引用.9.png文件:
<ImageView
android:id=\"@+id/imageView\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:src=\"@drawable/button\" />
通过以上对各种drawable类型的介绍,相信大家对Android开发中使用drawable的方法和技巧有了更深入的了解。
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。