1
我有一個標準的按鈕自定義:設置自定義按鈕,選擇位圖項目從SVG
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:drawable="@drawable/standard_button_normal_background_layer1"/>
<item android:drawable="@drawable/standard_button_normal_background_layer0"/>
<item><bitmap android:gravity="center" android:src="@drawable/the_bitmap" /></item>
</layer-list>
</item>
...
</selector>
我需要一個我從SVG文件加載到更改位圖。我用
http://code.google.com/p/svg-android/
能產生PictureDrawable:
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.icon);
PictureDrawable pd = svg.createPictureDrawable();
imageView.setImageDrawable(pd);
我如何可以訪問特定<bitmap>
項目,我怎麼可以設置位圖?任何解決方案
編輯:
我想知道如果我可以通過編程添加到自定義按鈕的圖片上<layer-list>
項目的底部。圖片來自svg,所以它不在編譯的資源上。
我需要的結果是一個帶有一些自定義圖形(由<layer-list>
定義)的按鈕和一個來自svg的集中在裏面的圖標。
我編輯了我的問題,也許它現在更清晰了。謝謝。 –
好吧,我看到你的答案更新。圖層列表位於之內,但我想我會發現它如何訪問它。所以,你說我需要一個BitmapDrawable。我可以在運行時從SVG準備它: 'PictureDrawable pd = svg.createPictureDrawable();' 'Bitmap mBitmap = Bitmap.createBitmap(100,100,Config.ARGB_8888);' 'Canvas canvas = new Canvas (bmp);' 'canvas.drawPicture(pd.getPicture());' –
是的,你可以組織選擇器,但是你可以在選擇器中引用其他文件。至於其餘的代碼,我認爲這將是你如何得到你想要的位圖。您需要將其包裝在可繪製的圖層中才能使圖層列表正常工作。你甚至可以使用PictureDrawable。 –