首页 > 系统 > Android > 正文

Android使用动画设置ProgressBar进度的方法

2019-10-22 18:16:21
字体:
来源:转载
供稿:网友

需求场景:当我们在使用ProgressBar的时候,希望有进度加载的效果,此时我们传统的做法是使用Thread线程来实现,下面我们用属性动画来实现,简单粗暴。。哈哈哈

布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.yhx.app.progressbardemo.MainActivity"> <ProgressBar  android:layout_marginTop="20dp"  android:id="@+id/bar"  android:layout_width="match_parent"  android:layout_height="8dp"  style="?android:attr/progressBarStyleHorizontal"  android:progress="10"  android:max="100"> </ProgressBar> <Button  android:hint="开始"  android:onClick="show"  android:layout_marginTop="50dp"  android:layout_width="match_parent"  android:layout_height="50dp"/> <TextView  android:id="@+id/tv_bar"  android:layout_marginTop="20dp"  android:layout_width="100dp"  android:text="0"  android:gravity="center"  android:textSize="38dp"  android:layout_gravity="center"  android:layout_height="100dp"/> <Button  android:hint="开始"  android:onClick="tvshow"  android:layout_marginTop="50dp"  android:layout_width="match_parent"  android:layout_height="50dp"/></LinearLayout>

Activity:

public class MainActivity extends AppCompatActivity { private ProgressBar mProgressBar; TextView mtv_bar; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  mProgressBar = (ProgressBar) findViewById(R.id.bar);  mtv_bar = (TextView) findViewById(R.id.tv_bar);  setAnimation(mProgressBar, 100); } private void setAnimation(final ProgressBar view, final int mProgressBar) {  ValueAnimator animator = ValueAnimator.ofInt(0, mProgressBar).setDuration(5000);  animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {   @Override   public void onAnimationUpdate(ValueAnimator valueAnimator) {    view.setProgress((int) valueAnimator.getAnimatedValue());   }  });  animator.start(); } private void setTvAnimation(final TextView view, final int mProgressBar) {  ValueAnimator animator = ValueAnimator.ofInt(0, mProgressBar).setDuration(5000);  animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {   @Override   public void onAnimationUpdate(ValueAnimator valueAnimator) {    view.setText(String.valueOf(valueAnimator.getAnimatedValue()));   }  });  animator.start(); } public void show(View view) {  setAnimation(mProgressBar, 100); } public void tvshow(View view){  setTvAnimation(mtv_bar,240); }}

效果图:

Android,ProgressBar,进度

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表