使用自定义进度条?

时间:2012-01-19 07:35:00

标签: android android-layout

我正在开发一个应用程序,它需要一个更宽的垂直进度条。这在android中是可能的。 如果是这样,请给我一个开始的方法?

2 个答案:

答案 0 :(得分:4)

这样做更简单。我遇到了和你一样的问题,并花了很多时间在论坛上寻找如何创建一个垂直进度条。

对于我的应用程序,我需要创建一个自定义进度条,所以我所做的是拍摄我给出的图像,然后使用缩放功能进行缩放。现在唯一困难的部分是,缩放类的那一部分需要你围绕图像的一个轴进行缩放,而你不能只使用一个设置浮点,因为它会根据屏幕大小而改变。

下面我将解释我的一个垂直进度条的代码。我使用垂直进度条显示电话费用的数据量,即500个中的150个。

首先要有一个想要缩放的图像

ImageView orangeBar;

然后声明一个比例变量。

ScaleAnimation scaleO;

当然找到它

orangeBar = (ImageView) findViewById(R.id.orange);

然后应用像这样的缩放动画

scaleO = new ScaleAnimation(1.0f, 1.0f, 1.0f, 2.0f, 1f,
            pivotPercent);
    scaleO.setDuration(3000);
    scaleO.setFillAfter(true);
    orangeBar.setAnimation(scaleO);

第三个和第四个变量是你改变它以使其垂直增长的变量。 1.0f是图像的默认大小。第四个变量是你玩的那个变量,让它随你想要的那样增长。

最后一个变量设置了枢轴,它是图像中的大约,它将从中生成动画。我使用了一个名为pivotPercent的变量,并使用一种方法来计算枢轴。我这样做的原因是,枢轴变量需要根据屏幕大小而有所不同。我注意到当我在制作动画时,当我把它放在模拟器和手机上时,它引起了问题。所以我创建了一个根据屏幕大小计算枢轴的方法。

所以我会首先得到屏幕的高度

Display display = getWindowManager().getDefaultDisplay();
    final int height_c = display.getWidth();

我会这样做

double getPercent = (double) height_c / 100 * 3.7;
    int pivotPercent = (int) getPercent;

为了让这项工作正常而采取了一些措施。

我希望这会有所帮助,如果您对代码有任何疑问,请询问,我会尽力澄清

更新:

这是应用程序加载时的进度条

enter image description here

和动画后影响

enter image description here

在这种情况下,酒吧缩水了。正如我所说,我使用垂直条标记进度。因此,条形图总是从默认位置开始,如图1所示,我只是选择了一个任意位置开始。关税超过500,所以在我给出的例子中,他们使用了500中的150.我有一种方法可以计算他们使用的关税百分比并更新标准以反映这一点。

我花了一天时间来完美,但玩得很开心。

答案 1 :(得分:1)

我首先要覆盖paint或repaint组件。忘了函数名可能OnDraw()? - 你可以画出你想要的东西。

onfocust时的自定义 Override onDraw to change how the drawing occurs (Android)