1

我在列表视图中有以下选项卡,这些选项卡在图像视图中使用图标 SVG:

在此处输入图像描述

我的问题是 SVG 图标非常大,我需要在不调整图像视图及其形状的情况下调整它的大小,我希望它是这样的:

在此处输入图像描述

这是我的代码:

circle_shape.xml

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

图像视图:

  <ImageView
        android:id="@+id/ivLearnsetType"
        android:layout_width="36dp"
        android:layout_height="29dp"
        android:layout_marginBottom="25dp"
        android:gravity="center"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="@string/placeholder"
        android:textColor="@color/Black" />

爪哇:

        Integer color = PokemonUtils.getColorForType().get(convertedType);
        Drawable drawable = getContext().getDrawable(R.drawable.ic_bug_type_icon);
        ivLearnsetType.setImageDrawable(drawable);
        ivLearnsetType.setBackgroundResource(R.drawable.circle_shape);
        GradientDrawable ivDrawable = (GradientDrawable) ivLearnsetType.getBackground();
        ivDrawable.setColor(color);
4

3 回答 3

2

在 Imageview 中使用 android:scaleType="centerInside"

于 2020-07-09T12:04:20.510 回答
1

尝试使用android:scaleType="fitXY"

这是完整的代码...

<ImageView
    android:id="@+id/ivLearnsetType"
    android:layout_width="36dp"
    android:layout_height="29dp"
    android:layout_marginBottom="25dp"
    android:gravity="center"
    android:scaleType="fitXY"
    android:scrollHorizontally="true"
    android:singleLine="true"
    android:text="@string/placeholder"
    android:textColor="@color/Black" />

希望这会有所帮助...随时要求澄清...

于 2020-07-09T11:11:38.953 回答
1

将此添加到 app/build.gradle 以获得支持

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

在 onCreate 方法中添加这个。

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
于 2020-07-09T11:48:11.410 回答