我使用 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>
最佳答案
我不知道 svg 图像但属性你正在使用
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setAdjustViewBounds(true);
将在位图上工作,当我设置图像可绘制时我也遇到了这个问题所以我将 drwable 转换为位图并将 imagebitmap 设置为 imageview 然后它也可以使用 setImageDrawable() 检查
关于android - 在 ImageView 中缩放 svg 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764777/