2013-08-10 4 views
5

実行中のバックグラウンドプロセスの進行状況を示すボタンの背景を変更しようとしています。<item>プロパティをプログラムで変更します

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:bottom="20dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#FFFFFF" /> 
     </shape> 
    </item> 

    <item android:top="30dp"> 
     <shape android:shape="rectangle" > 
      <solid android:color="#000000" /> 
     </shape> 
    </item> 
</layer-list> 

私は<item>を選択することができないよ:私は、次のレイヤーリストでプログラムそれら<item> Sの上部と下部のプロパティを変更する必要があるので、今2色で構成描画可能を使用しています要素を編集し、Javaコードから変更します。

答えて

0

Androidを実行時に使用しないため、XMLを変更しても役立たないでしょう。代わりに、LayerDrawableを見てください。これはXMLから作成され、実行時に使用されるためです。

基本的にはそういうことをして、そこから続けることができます: LayerDrawable ld =(LayerDrawable)mButton.getBackground();

しかし、描画する2つの矩形があるので、あなたのDrawableクラスを作成するのはおそらく簡単です。

+0

カスタムDrawableクラスが最適なソリューションでした。 – alvarovmz

0

別の項目値で同じxmlファイルを作成し、ボタンの新しい背景を設定するだけです。実行時にこれらの値を変更することはできないようです。

+0

バックグラウンドタスクの現在のステータスを表示するには、特定の値を設定できる必要があります。これは、別の静的XMLファイルでは不可能です。 – alvarovmz

関連する問題