在ImageView

时间:2015-09-24 15:04:07

标签: android

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

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

片段

@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

1 个答案:

答案 0 :(得分:1)

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

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

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