我使用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>
答案 0 :(得分:1)
我不知道svg图像,但是你正在使用的属性
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setAdjustViewBounds(true);
将在位图上工作,当我设置图像drawable时我也遇到了这个问题所以我将drwable转换为位图并将imagebitmap设置为imageview然后它也工作了checkwith setImageDrawable()