在android中使用不同颜色的一个图标的最佳解决方案是什么?

时间:2014-09-30 16:25:14

标签: android svg icons svg-android

我尝试过使用svg格式的图标和svg-android,但它不起作用。 我从svg文件创建了一个drawable并将其用于ImageView ImageResource,但图像是不可见的。 那么我怎么能用svg-android做到这一点?或以不同的方式?

这是exemple for icons that i want to use

我想用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);

}

2 个答案:

答案 0 :(得分:0)

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

Google有一个AndroidSVG库,你可以使用它:https://code.google.com/p/svg-android/wiki/Tutorial

然而,它会建议在photoshop中删除这些资产。

Svgs可能非常慢,在像素密度较高的设备上可能看起来不太好。

答案 1 :(得分:0)

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

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

完美无缺。