2016-10-01 4 views
2

Я использую векторный чертеж, и я хочу, чтобы изображение было на картинке с фоном 40dp и изображением 24dp. Я получил этот макет в настоящее время:ImageView с векторным размером для рисования

<ImageView 
      android:id="@+id/image" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:background="@drawable/circle" 
      android:src="@drawable/ic_image" 
      android:tint="@android:color/white" 
      tools:ignore="ContentDescription"/> 

Проблема заключается в том, что изображение масштабируется и заполняет все 40dp даже если в векторе Drawable я получил:

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportWidth="24.0" 
     android:viewportHeight="24.0"> 

рисует круг :

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="oval"> 
    <solid 
     android:color="@color/colorAccent"/> 
    <size 
     android:width="40dp" 
     android:height="40dp"/> 
</shape> 

Как исправить макет? Нужно ли преобразовать вектор в png?

+1

это потому, что 'ImageView' по умолчанию масштабирует ввод' 'Drawable' с ScaleType.FIT_CENTER', прочитайте' ImageView.ScaleType' документацию для других значений – pskink

+0

@pskink Спасибо, решается с помощью Центра окружного масштаба – greywolf82

+0

хорошо: Кстати, вы можете использовать 'LayerDrawable' с 2 слоями (круг и вектор) и передать его в' View # setBackground', нет необходимости в 'ImageView' – pskink

ответ

3

Я решил проблему, используя android:scaleType со значением center.