你好,我对Android还比较陌生,希望能得到一些指引或建议来解决我的问题。由于我的声望还不够,因此无法上传图片,所以我将尽力用文字描述。
假设我有一个空瓶子,在调用这个片段/活动时,我想要展示一个动画效果,逐渐从下往上,使这个imageView中的水逐渐填满。
有什么想法或方向吗?
非常感谢!
您可以通过使用自定义的ProgressBar
来实现这一点。更加简单。
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:indeterminateOnly="false"
android:max="100"
android:progress="30"
android:progressDrawable="@drawable/progress_bar_clip" >
</ProgressBar>
progress_bar_clip.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">
<clip
android:clipOrientation="vertical"
android:drawable="@drawable/ic_launcher"
android:gravity="bottom" />
</item>
<item android:id="@android:id/progress">
<clip
android:clipOrientation="vertical"
android:gravity="bottom" >
<bitmap android:src="@drawable/ic_launcher" >
</bitmap>
</clip>
</item>
</layer-list>
你不需要加载任何动画,只需使用处理程序并将进度条增加1。
final ProgressBar bar = (ProgressBar) findViewById(R.id.progressbar);
final Handler handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if(bar.getProgress() != 100) {
bar.incrementProgressBy(1);
handler.postDelayed(runnable, 500);
}
}
};;
handler.post(runnable);
ProgressBar
,并在android:id="@android:id/progress"
中设置填充的玻璃可绘制对象。这样,它实际上看起来像水正在玻璃中填充。 - Joel Fernandesandroid:progress="0"
- Joel Fernandes