【问题标题】:Android SVG for multiple sizes?适用于多种尺寸的Android SVG?
【发布时间】:2016-08-15 16:20:52
【问题描述】:

我目前正在使用标准 24dp 尺寸的 PNG。但是,我需要一些大于 100dp 的图标。所以我发现最好使用 SVG 而不是大尺寸的 PNG。

(使用 gradle 2.0,Android 支持 lib 23.3)

一个图标是一个普通的共享图标。之前我使用ic_share_white_24dp.png 在ActionBar 上显示一个分享按钮。我需要使用大尺寸的共享图标,所以我使用 Vector Asset Studio 导入 Material SVG Share 图标。导入后是这样的:

文件名: ic_share_white_48px.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="100dp"
    android:height="100dp"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0">
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" />
</vector>

我将宽度和高度更改为100dp。这背后的原因是当使用 below API LOLLIPOP 时,会生成 PNG 并在以 100dp 显示时进行缩放。所以,我把 24dp 改成了 100dp,这样 Android Studio 就可以生成 100dp 的 PNG。

现在,我也想在操作栏上使用这个 SVG。我应该创建一个高度和宽度设置为 24dp 的新 xml 吗?或者这将在没有任何性能问题的情况下正常工作?处理多尺寸图像的最佳方法是什么?

最重要的是,我是否缺少一些基本的理解?

【问题讨论】:

  • 我对最终决定感到好奇。我们应该只为不同的 DP 维护一个 XML (SVG) 还是多个 XML?谢谢。

标签: android svg


【解决方案1】:

http://fontastic.me/

这是一个将 SVG 转换为 .ttf 文件并生成 Unicode 的站点。把它放在资产/字体文件夹和值文件夹中的Unicode(icons.xml)为特定图标提供字符串名称。

示例:&lt;string name="icon_info"&gt;&amp;#xf129;&lt;/string&gt;

在 textView 中使用这个字符串

<TextView
 android:id="@+id/icon_info"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="@string/icon_info"
 android:textColor="@color/black"
 android:textSize="40dp" />

在.java文件中

icon_info=(TextView)findViewById(R.id.icon_info);
 Typeface font = Typeface.createFromAsset(this.getResources().getAssets(), "fonts/icons.ttf");
icon_info.setTypeface(font);

【讨论】:

  • 是的,这在某些情况下可能很有用。但不总是。因为我的用法很复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 2013-02-05
  • 2020-07-30
相关资源
最近更新 更多