您当前的位置: 首页 > 热点资讯

drawable(Android开发中常用的drawable类型详解)

作者:旎旎生活 时间:2023-06-13T12:50:13 阅读数:41216人阅读

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

BitmapDrawable

drawable(Android开发中常用的drawable类型详解)

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

drawable(Android开发中常用的drawable类型详解)

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

drawable(Android开发中常用的drawable类型详解)

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

drawable(Android开发中常用的drawable类型详解)

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

drawable(Android开发中常用的drawable类型详解)

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的方法和技巧有了更深入的了解。

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。