ProgressBar:自定义旋转图片
16lz
2021-01-23
自定义旋转图分三步:
1、在layout中为ProgressBar设计布局;
2、在style中为ProgressBar设置Style;
3、新建一个类继承ProgressBar,在构造方法中设置style,加载布局;
下面是我写的一个例子,先看第一步,布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/progressdialog_background" android:gravity="center" android:orientation="vertical" android:paddingBottom="@dimen/xhdpi_8dp" android:paddingLeft="@dimen/xhdpi_18dp" android:paddingRight="@dimen/xhdpi_18dp" android:paddingTop="@dimen/xhdpi_8dp"> <ProgressBar android:layout_width="38dp" android:layout_height="38dp" android:indeterminateBehavior="repeat" android:indeterminateDrawable="@drawable/progressbar_drawable" android:indeterminateDuration="2000" android:indeterminateOnly="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/xhdpi_8dp" android:text="登入中..." android:textColor="@color/ad_color_white" android:textSize="@dimen/xhdpi_12sp" />LinearLayout>
android:indeterminateBehavior=”repeat”设置行为为重复,及图片会一直重复旋转;
android:indeterminateDrawable=”@anim/progressbar_drawable”设置旋转动画;
android:indeterminateDuration=”2000”这里是设置完成一次动画的时间
android:indeterminateOnly=”true”设置为不确定模式
下面是anim/progressbar_drawable.xml
<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" android:drawable="@mipmap/progress_orange">rotate>
注意如果这里设置android:duration的时间是不起作用的。
再看第二步,设置style:
android:windowBackground,设置ProgressBar的背景为透明,如果不透明,会有黑色边框;
android:backgroundDimEnabled,设置窗口背景是否变暗,false为不变暗。
最后一步,新建MyProgressBar类继承ProgressBar,代码如下:
public class HlwProgressDialog extends ProgressDialog { public HlwProgressDialog(Context context, int theme) { //将自定义的style转进去,设置为我们定义的style super(context, R.style.progressDialog_style); //点击返回键可以dismissProgressBar setCanceledOnTouchOutside(false); } public HlwProgressDialog(Context context) { this(context, R.style.progressDialog_style); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载我们设计的布局 setContentView(R.layout.hlw_progressdialog); }}
大功告成,现在我们就可以和使用系统的ProgessBar一样使用我们自定义的了。
更多相关文章
- Android软键盘遮挡布局问题;
- Android对用五大布局
- Android使用GridLayout布局简单的计算器界面
- android:MATCH_PARENT是什么类型的布局
- android布局中容易混淆的几个属性
- android studio加载so文件报错:dalvik.system.PathClassLoadero
- Android StaggeredGridLayoutManager布局RecyclerView在滚动状态
- android横竖屏切换和布局的问题