0

長方形で数量を表示したいアプリに取り組んでいます。以下は私が必要なものです。totalMoneyとspentMoneyの2つの値があります。残りのお金(つまり、totalMoney-spentMoney)を2色の長方形のボックスに表示したいと思います。

このような:

|======================| 
|///////////|          |
|////50%////|          |   
|///////////|          |
|======================|

この長方形は、textviewなどの他のコンポーネントと連携して、カスタムビューになります。

Androidでこれを取得するにはどうすればよいですか?私はAndroid2.2に取り組んでいます。

4

2 に答える 2

1

ProgressBarが必要です。

これはカスタムのものの例です。

    <ProgressBar style="?android:attr/progressBarStyleHorizontal"
      android:layout_width="fill_parent"
   android:layout_height="7dip"
  android:id="@+id/pop1000Bar"
  android:max="1000"
  android:progress="500"
  android:progressDrawable="@drawable/progressbarlayers"
  >
  </ProgressBar>

progressbarlayersは、プログレスバーの外観を定義するxmlファイルです。これが私のセットアップ方法です。

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

<item android:id="@android:id/background">
    <shape>
        <corners android:radius="5dip" />
        <gradient
                android:startColor="#ff9d9e9d"
                android:centerColor="#ff5a5d5a"
                android:centerY="0.75"
                android:endColor="#ff747674"
                android:angle="270"
        />
    </shape>
</item>

<item
    android:id="@android:id/progress"
>
    <clip>
        <shape>
            <corners
                android:radius="5dip" />
            <gradient
                android:startColor="#A9F505"
                android:endColor="#FFF700"
                android:angle="270" />
        </shape>
    </clip>
</item>

<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
        <size android:height="3dip"/>



            <gradient
                    android:startColor="#80ffd300"
                    android:centerColor="#80ffb600"
                    android:centerY="0.75"
                    android:endColor="#a0ffcb00"
                    android:angle="270"
            />
        </shape>
    </clip>
</item>
<item
    android:id="@android:id/progress"
>
    <clip>
        <shape>
            <corners
                android:radius="5dip" />
            <gradient
                android:startColor="#A9F505"
                android:endColor="#FFF700"
                android:angle="270" />
        </shape>
    </clip>
</item>

</layer-list>

次のようになります。

ここに画像の説明を入力してください

しかし、あなたはそれをあなたがそれを必要とするもののように見せることができます。

編集:あなたがそれらにテキストを取得することを達成することができる多くの方法があります。親レイアウトがRelativeLayoutの場合、進行状況が更新されるたびに、進行状況バーの上にTextViewをスタックし、テキストビューでsetTextを呼び出すことができます。おそらく、より良いアプローチは、ProgressBarをサブクラスにしてそこに描画することです。これがその例です。彼らは、ProgressBarを拡張する新しいビューを作成し、onDrawをオーバーライドして、バーと背景をペイントするだけでなく、毎回キャンバスにテキストを描画します。

于 2012-05-05T12:49:18.113 に答える
0

最も柔軟な方法は、CustomView を実行することです。

ImageView を基本クラスとして使用し、onDrawをオーバーライドします

onDraw はキャンバスを提供し、好きなものを描くことができます。

于 2012-05-05T14:09:29.950 に答える