Translate

BTemplates.com

Powered by Blogger.

2017年9月5日火曜日

XML変換したVector画像がAndroid7.0より前だと一部正しく表示されない


下の画像を使用して、アイコン表示をやりたかったが上手くいかない。
以下の画像は、Inkscapeというソフトを使って
SVGを作成した後に、AndroidStudioを使って
XMLに変換して取り込んだ。

<vector    android:height="@dimen/launcher_icon_size"    android:width="@dimen/launcher_icon_size"    android:viewportHeight="313.0457"    android:viewportWidth="313.5988"    xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#FF000000" android:pathData="M-752.22,150.45h28.57v65.71h-28.57z"/>
    <path android:fillAlpha="1" android:fillColor="#b3b3b3"        android:pathData="M66.17,0.41L247.42,0.41A65.77,65.77 0,0 1,313.19 66.17L313.19,246.87A65.77,65.77 0,0 1,247.42 312.64L66.17,312.64A65.77,65.77 0,0 1,0.41 246.87L0.41,66.17A65.77,65.77 0,0 1,66.17 0.41z"        android:strokeAlpha="1" android:strokeColor="#b3b3b3" android:strokeWidth="0.81412393"/>
    <path android:fillAlpha="1" android:fillColor="#ffcc00"        android:pathData="M35.26,210.42A103.88,118.54 0,0 1,102.32 61.26,103.88 118.54,0 0,1 233.02,137.78 103.88,118.54 0,0 1,165.99 286.94,103.88 118.54,0 0,1 35.27,210.45"        android:strokeAlpha="1" android:strokeColor="#ffcc00" android:strokeWidth="0.33088112"/>
    <path android:fillColor="#000080"        android:pathData="m160.45,3.99 l-32.63,51.5a105.49,119.86 0,0 1,5.57 -0.39,105.49 119.86,0 0,1 101.61,83.12 105.49,119.86 0,0 1,-6.73 91.64l77.01,-31.5zM228.27,229.87 L182.37,248.65a81.38,92.47 0,0 1,-3 2.26v-1.03l3,-1.23A81.38,92.47 0,0 0,211.88 145.74,81.38 92.47,0 0,0 133.49,81.61 81.38,92.47 0,0 0,109.48 86.06,81.38 92.47,0 0,0 108.09,86.63l-54.99,86.78a81.38,92.47 0,0 0,3.85 29l0.01,0.02a81.38,92.47 0,0 0,82.34 63.84l3.33,-1.36v1.06a81.38,92.47 0,0 1,-3.33 0.31l-46.01,18.82a105.49,119.86 0,0 0,73.63 3.96,105.49 119.86,0 0,0 61.35,-59.18zM93.29,285.09A105.49,119.86 0,0 1,34.18 211.71l-0.01,-0.03a105.49,119.86 0,0 1,-1.5 -6.03l-27.49,43.39 38.75,56.25zM53.1,173.41A81.38,92.47 0,0 1,108.09 86.63L127.82,55.49A105.49,119.86 0,0 0,102.27 60.86,105.49 119.86,0 0,0 32.67,205.65ZM110.31,94.79L151.01,94.79v57.75h52.88L203.88,195.93L109.78,195.93L109.78,152.55h0.53z"        android:strokeAlpha="1" android:strokeColor="#000080"        android:strokeLineCap="butt" android:strokeLineJoin="miter" android:strokeWidth="1.26294589"/>
    <path android:fillAlpha="1" android:fillColor="#000080"        android:pathData="m1605.09,1916.84 l-0.94,1.56a70.28,70.46 0,0 1,0.41 -0.03,70.28 70.46,0 0,1 67.7,48.86 70.28,70.46 0,0 1,3.26 18.05l2.74,-1.75v-36.15l-28.39,-30.55zM1675.52,1985.29 L1657.53,1996.77a53.2,53.34 0,0 1,-36.37 43.81,53.2 53.34,0 0,1 -32.34,0.05l-16.31,10.41a70.28,70.46 0,0 0,54.39 4.86,70.28 70.46,0 0,0 48.62,-70.61zM1572.51,2051.04a70.28,70.46 0,0 1,-30.04 -30.93l-8.56,14.12v22.69l4.92,4.37h17.61zM1542.48,2020.11 L1553.21,2002.41a53.2,53.34 0,0 1,35.34 -63.36,53.2 53.34,0 0,1 3.67,-0.99l11.92,-19.66a70.28,70.46 0,0 0,-20.33 3.36,70.28 70.46,0 0,0 -45.37,88.66v0.02a70.28,70.46 0,0 0,4.02 9.68zM1592.23,1938.06 L1553.21,2002.41a53.2,53.34 0,0 0,1 3.75l0.01,0.01a53.2,53.34 0,0 0,34.61 34.46l68.71,-43.86a53.2,53.34 0,0 0,-2.04 -23.3,53.2 53.34,0 0,0 -51.25,-36.99 53.2,53.34 0,0 0,-12.02 1.58zM1593.34,1942.95h19.47v34.28a13.43,13.46 0,0 1,3.7 3.77l33.65,-0.01v19.52l-39.17,0.01a13.43,13.46 0,0 1,-1.61 0.65,13.43 13.46,0 0,1 -16.89,-8.68h-0a13.43,13.46 0,0 1,0.84 -10.26z"        android:strokeAlpha="1" android:strokeColor="#000080" android:strokeWidth="0.11688769"/>
</vector>
理由はいまいちよくわからないのだが AQUOS eaで見たときのみ正しく表示され エミュレーターと手持ちのタブレットの表示だと 以下のように表示される。 加工した画像ではあるが大体こんな感じに表示される。 具体的には下の青く表示されるはずの部分が 線だけが残っていて、塗りつぶしがされない状態になっている

 

検証した感じでは、Androidのバージョンに一番関係がありそうではある。
AQUOS eaはAndroid7.0でタブレットは6.0で検証した。
バージョンが今回の問題で怪しいと思っている理由としては5.0と5.1と6.0では上記のようになるので、
エミュレーターであるが、Android7.0で解像度が420dpiとxhdpiでは、正しく表示された。
ほかのAndroidのバージョンだと
どの解像度でやっても変わんなかったので解像度は関係ない気がする
また念のため、自分が使っているアイコンが android:viewportHeightや
android:viewportWidthの値が200以下なので
198にしてみたが、それも関係がなかった。
そうなると、Android7.0なら認識できるものがあるという事になるが
どういう事なんだろうか?
 
後日、再度調査するか質問掲示板辺りに投げたいと思う。

0 コメント:

コメントを投稿