2016-04-22 143 views
0

我目前使用標準24dp大小的PNG。不過,我需要一些大於100dp的圖標。所以我發現使用SVG代替大尺寸的PNG會更好。適用於多種尺寸的Android SVG?

(使用2.0的gradle,機器人支撐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。原因背後是當被用於 API LOLLIPOP時,生成PNG並在100dp時顯示縮放。所以,我將24dp更改爲100dp,以便Android Studio可以生成100dp的PNG。

現在,我也想在Action Bar上使用這個SVG。我應該創建一個新的xml高度和寬度設置爲24dp?或者這將工作得很好,沒有任何性能問題縮小比例?處理多尺寸圖像的最佳方法是什麼?

最重要的是,我錯過了一些基本的理解?

回答

3

http://fontastic.me/

在這裏你轉換SVG在.TTF文件,並生成統一的站點。把它放在資產/字體文件夾& Unicode文件夾中(icons.xml)給出特定圖標的字符串名稱。

例如:<string name="icon_info">&#xf129;</string>

使用此字符串的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); 
+0

是的,這可能是在某些情況下是有用的。但不總是。因爲我的用法很複雜。 – kirtan403