svg图像大小无法适应android中的父容器

时间:2019-01-06 05:36:50

标签: android android-layout

我正在使用SVGImageview显示SVG图像,但是它没有占据整个屏幕,如下所示:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //ImageView imageView = (ImageView)findViewById(R.id.imageView);
    //imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    //imageView.setAdjustViewBounds(true);
}
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.caverock.androidsvg.SVGImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_load_bg"
        android:scaleType="fitXY">
    </com.caverock.androidsvg.SVGImageView>
</LinearLayout>

有人可以帮我在任何屏幕尺寸下执行此操作吗?我发现此link与我在此处尝试执行的操作类似,但没有给我任何提示。

enter image description here

1 个答案:

答案 0 :(得分:0)

https://github.com/BigBadaboom/androidsvg/blob/master/androidsvg/src/main/java/com/caverock/androidsvg/SVGImageView.java

似乎正在寻找“ app:svg”属性而不是“ android:src”。还需要一些CSS来创建要渲染的图片对象。

private void  doRender()
{
    if (svg == null)
    return;
    Picture  picture = this.svg.renderToPicture(renderOptions);
    setSoftwareLayerType();
    setImageDrawable(new PictureDrawable(picture));
}

另一个有用的链接是http://bigbadaboom.github.io/androidsvg/SVGImageView.html 附加信息:Android具有诸如LayoutInspector之类的工具来检查布局。通过studio,您可以将svg文件转换为其他格式,并可以直接使用“图像”视图进行操作。