1

我尝试在 svg-android 中使用 svg 格式的图标,但它不起作用。我已经从 svg 文件创建了一个可绘制对象,并将其用于 ImageView ImageResource,但该图像是不可见的。那么我怎么能用 svg-android 做到这一点呢?或以不同的方式?

是我要使用的图标的示例:

我想将它与 SVG 格式一起使用,因为我想将相同的图标与另一种颜色一起使用。

这是我的 XML 文件:

<ImageView
            android:id="@+id/home_desc_butt"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:layout_marginLeft="3dp"

            />

这里我的onCreateView:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.activity_campaign_details, container, false);
    home_desc_butt = (ImageView) rootView.findViewById(R.id.home_desc_butt);
    SVG svg = SVGParser.getSVGFromResource(rootView.getResources(), R.raw.icon_house_alt);
    Drawable drawable = svg.createPictureDrawable();
     home_desc_butt.setImageDrawable(drawable);

}
4

2 回答 2

0

如果你真的需要为你的图标使用 SVG,那么有一些库可能会有所帮助:

谷歌为此提供了一个 AndroidSVG 库,您可以使用它:https ://code.google.com/p/svg-android/wiki/Tutorial

但是,它会建议在 Photoshop 中剪切这些资产。

Svgs 可能会很慢,并且在像素密度较高的设备上可能看起来不太好。

于 2014-09-30T16:52:03.833 回答
0

我找到了一种替代解决方案,可以在不使用 svg-android 库的情况下为我的图标着色:

ColorFilter filter = new LightingColorFilter( Color.RED, Color.RED);
    home_desc_butt.setColorFilter(filter);

这完美无缺。

于 2014-09-30T18:43:56.683 回答