Android透明圆形进度条对话框的设置
来源:互联网 发布:文言文现代文互译软件 编辑:程序博客网 时间:2024/05/16 11:53
首先我们看一下Android自带的圆形进度对话框:
接下来我们讲一下如何创建:
1、使用Eclipse创建一个新的Android 项目,使用Android 2.2或以上。
2、在/res/layout文件夹,创建线性布局activity_main.xml文件,主要是为了添加一个文本标签和一个按钮
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:padding="8dp" android:textSize="20sp" android:text="Transparent Progress Indicator" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Check it out!" android:layout_marginTop="40dp" android:layout_gravity="center" android:id="@+id/the_button" /></LinearLayout>
3、在/res/values中打开styles.xml,在这里将添加透明对话框的样式。请务必指定父属性,否则你在运行时会出现问题
styles.xml<resources> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> <style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style> <!-- Transparent dialog --> <style name="TransparentProgressDialog" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleStyle">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:background">@android:color/transparent</item> </style></resources>
4、 在/res中间添加一个动态旋转的动画图片:
5、现在可以实现您的MainActivity.java文件了
MainActivity.javapackage com.authorwjf.transparentprogressdialog;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.app.Dialog;import android.content.Context;import android.view.Gravity;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.view.WindowManager;import android.view.animation.Animation;import android.view.animation.LinearInterpolator;import android.view.animation.RotateAnimation;import android.widget.ImageView;import android.widget.LinearLayout;public class MainActivity extends Activity implements OnClickListener { private TransparentProgressDialog pd; private Handler h; private Runnable r; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); h = new Handler(); pd = new TransparentProgressDialog(this, R.drawable.spinner); r =new Runnable() { @Override public void run() { if (pd.isShowing()) { pd.dismiss(); } } }; findViewById(R.id.the_button).setOnClickListener(this); } @Override public void onClick(View v) { pd.show(); h.postDelayed(r,5000); } @Override protected void onDestroy() { h.removeCallbacks(r); if (pd.isShowing() ) { pd.dismiss(); } super.onDestroy(); }}
6、以下是实现透明动画的代码
package com.example.circleprogressbar;import android.app.Dialog;import android.content.Context;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.view.WindowManager;import android.view.animation.Animation;import android.view.animation.LinearInterpolator;import android.view.animation.RotateAnimation;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;public class TransparentProgressDialog extends Dialog { private ImageView iv; public TransparentProgressDialog(Context context, int resourceIdOfImage) { super(context, R.style.TransparentProgressDialog); setTitle(null); setCancelable(false); setOnCancelListener(null); LinearLayout layout = new LinearLayout(context); layout.setOrientation(LinearLayout.VERTICAL); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(80, 80); iv = new ImageView(context); iv.setImageResource(resourceIdOfImage); layout.addView(iv, params); addContentView(layout, params); } @Override public void show() { super.show(); RotateAnimation anim = new RotateAnimation(0.0f, 360.0f , Animation.RELATIVE_TO_SELF, .5f, Animation.RELATIVE_TO_SELF, .5f); anim.setInterpolator(new LinearInterpolator()); anim.setRepeatCount(Animation.INFINITE); anim.setDuration(3000); iv.setAnimation(anim); iv.startAnimation(anim); }}
最后的结果是
0 0
- Android透明圆形进度条对话框的设置
- Android--圆形进度条对话框
- Android圆形进度条颜色的设置
- Android-progressdialog自定义背景透明的圆形进度条类似于Dialog
- 圆形对话框的设置
- 简单好看的圆形进度条对话框开源库
- Android笔记: ProgressBar 圆形进度条颜色的设置
- Android学习札记6:ProgressBar圆形进度条的颜色设置
- Android笔记: ProgressBar 圆形进度条颜色的设置
- Android笔记: ProgressBar 圆形进度条颜色的设置
- Android自定义的圆形进度条
- android:圆形进度条的实现
- android圆形进度条ProgressBar颜色设置
- android圆形进度条ProgressBar颜色设置
- android圆形进度条ProgressBar颜色设置
- Android透明无边框圆形进度条之最简单实现
- Android透明无边框圆形进度条之最简单实现
- Android透明无边框圆形进度条之最简单实现
- 表达式树
- 2015年第八周项目三:分数类中的运算符重载(2)
- 如何写一个Pod,并发布到CocoaPods上
- 金沙娱乐城开心一笑
- mysql 姓名首字母排序
- Android透明圆形进度条对话框的设置
- UILable常见用法 - iOS - UI基础知识总结3
- ssh出现的问题
- How to: Shellcode to reverse bind a shell with netcat(如何使用netcat进行shellcode反向链接)
- Opencv图像在MFC中显示的几种方法
- 关于Java序列化和反序列化的理解以及概念和例子
- http协议get发送请求
- EL表达式和JSTL标签库使用详解
- 倒排索引的基础知识