Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中以图形方式显示数量?_Android_Graphics_Colorbox_Draw - Fatal编程技术网

如何在Android中以图形方式显示数量?

如何在Android中以图形方式显示数量?,android,graphics,colorbox,draw,Android,Graphics,Colorbox,Draw,我正在开发一个应用程序,其中我想在一个矩形中显示一个数量。以下是我需要的。我有两个价值观,比如totalMoney和spentMoney。 我想在两种颜色的矩形框中显示剩余的钱(即totalMoney-spentMoney) 像这样: |======================| |///////////| | |////50%////| | |///////////| | |======================| 此矩

我正在开发一个应用程序,其中我想在一个矩形中显示一个数量。以下是我需要的。我有两个价值观,比如totalMoney和spentMoney。 我想在两种颜色的矩形框中显示剩余的钱(即totalMoney-spentMoney)

像这样:

|======================| 
|///////////|          |
|////50%////|          |   
|///////////|          |
|======================|
此矩形将与其他组件(如textview等)协作,位于自定义视图中

我如何在Android中得到这个?我正在安卓2.2上工作。

您需要一个

下面是一个自定义的示例

    <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>

结果是这样的:

但你可以让它看起来像你需要的任何东西


编辑:您可以通过多种方式获取文本。如果父布局是相对布局,则只需在进度栏顶部堆叠一个文本视图,并在每次更新进度时在文本视图上调用setText。可能更好的方法是使用ProgressBar子类为您绘制它。他们刚刚创建了一个新视图,扩展ProgressBar,并覆盖onDraw,以便每次在画布上绘制一些文本,同时绘制条形图和背景。

最灵活的方法是创建自定义视图

使用ImageView作为基类并重写onDraw


onDraw给你一张画布,你可以画你喜欢的东西。

谢谢你的快速回答。。。我现在就试试。。。。那上面的文字呢。。。我怎么能有那个。。。因为这也是需要的,非常感谢你。。。我正在尝试。。。我知道这会奏效的。。向你致敬…一个小问题。。。根据我的要求,我不想要一个不断变化/成长的进度条。。我只想设置一个值,就这样。。。你的解决方案仍然有效吗