Вы можете создать ресурс (слой для рисования в формате xml) для "границы" вашего ImageView
(на самом деле фон) и объявить в своем theme
, что фоновый ресурс ImageView
- это доступный для рисования xml.
Если вам нужно изменить эту «рамку» в зависимости от состояния ImageView
(focused
, selected
и т. Д.), То вам нужно создать больше слоев для рисования и соединить их вместе в селекторе. XML (состояние рисования).
Тогда в вашей теме вы должны установить фон ImageView
таким selector.xml
.
Обновление
Ниже приведен пример того, как задать простую рамку для ваших изображений, которая приведет к

Вы должны
- создать новый файл для рисования слоя (
image_border.xml
),
- изменить / создать файл
styles.xml
- изменить / создать
colors.xml
файл
- измените XML-файл макета (или код), чтобы применить стиль к
ImageView
.
Рез / рисуем / image_border.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient android:angle="90"
android:startColor="@color/image_border_start"
android:centerColor="@color/image_border_center"
android:endColor="@color/image_border_end" />
</shape>
</item>
<item android:top="2dp" android:left="2dp"
android:right="2dp" android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@color/default_back_color" />
</shape>
</item>
</layer-list>
res / values / styles.xml
Добавьте следующие строки:
<style name="myImageView">
<!-- 3dp so the background border to be visible -->
<item name="android:padding">3dp</item>
<item name="android:background">@drawable/image_border</item>
<item name="android:scaleType">fitCenter</item>
</style>
res / values / colors.xml
Добавьте следующие строки:
<color name="image_border_start">#40990000</color>
<color name="image_border_end">#FF660000</color>
<color name="image_border_center">#FFFF3333</color>
И, наконец, укажите стиль вашего ImageView
в вашем макете xml :
<ImageView android:id="@+id/my_image"
android:layout_width="100dp" android:layout_height="100dp"
android:src="@drawable/efteling"
style="@style/myImageView" />