android - 在 ImageView 中缩放 svg 图像

标签 android

我使用 android-svg 将 imageViews 绑定(bind)到 svg 文件lib,这有效。不幸的是,渲染的 svg 图像的大小不一致;有些非常合身,有些非常小。我已尝试更改各种 ImageView 属性,但我尝试过的任何方法都无法解决问题。

是否有我缺少的需要设置的属性?

fragment

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_main, container, false);
    ImageView imageView = (ImageView) v.findViewById(R.id.testImage);

    SVG homeSvg = SVGParser.getSVGFromString(getResources().getString(R.string.svg));
    imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    imageView.setAdjustViewBounds(true);
    imageView.setImageDrawable(homeSvg.createPictureDrawable());

    return v;
}

布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivityFragment">

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FF0000"
        android:padding="10dp">

        <ImageView
            android:id="@+id/testImage"
            android:layout_width="50dp"
            android:layout_height="50dp" />

    </FrameLayout>
</RelativeLayout>

The logo can faintly be seen in the top left corner

最佳答案

我不知道 svg 图像但属性你正在使用

imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    imageView.setAdjustViewBounds(true);

将在位图上工作,当我设置图像可绘制时我也遇到了这个问题所以我将 drwable 转换为位图并将 imagebitmap 设置为 imageview 然后它也可以使用 setImageDrawable() 检查

关于android - 在 ImageView 中缩放 svg 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764777/

相关文章:

android - 如果有互联网连接,我可以使用 PC 检查模拟器吗?

android - XML 中的未知错误

android - Armv6 + ffmpeg + android = sigill(堆)

java - 表 [...] 没有名为 [...] 的列 SQLite java

android - 如何在按钮小部件上的两行文本上设置不同(文本大小和文本颜色)

android - 谷歌云消息 : Can you send to a select group of users?

android - 在android中设置自定义闹钟音

android - 无法将 firebase 添加到 android 应用程序

使用 SharedPreferences 的 Android 小部件配置

android - 如何在锁定屏幕和通知栏中显示带小时的闹钟图标