Android中自定义的加载对话框和加载条
来源:互联网 发布:编程对电脑配置的要求 编辑:程序博客网 时间:2024/05/18 00:39
先分享一个常用的转动形式加载对话框。
这个是很早前一个应用,一哥们写的控件。
后来发现联想的应用中基本所用应用加载框都是这个。(开源代码没版权一说吧)
控件比较简单,分享下思路:
1.首先这是一个自定义的dialog,重写了dialog,系统的progressdialog也是继承了dialog。
- /**
- * @author Nono
- *
- */
- public class CustomProgressBarDialogextends Dialog {
- private LayoutInflater inflater;
- private Context mContext;
- private LayoutParams lp;
- /**
- * @param context
- */
- public CustomProgressBarDialog(Context context) {
- super(context, R.style.NoTitleDialog);
- this.mContext = context;
- inflater = (LayoutInflater) mContext
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- layout = inflater.inflate(R.layout.custom_progressbar, null);
- setContentView(layout);
- // 设置window属性
- lp = getWindow().getAttributes();
- lp.gravity = Gravity.CENTER;
- lp.dimAmount = 0;// 去背景遮盖
- lp.alpha = 1.0f;
- getWindow().setAttributes(lp);
- }
- }
2.主要是setContentView(view)中的这个view该如何定义。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:gravity="center">
- <ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- style="@style/CustomProgessBarStyle" android:padding="10dip"
- android:layout_gravity="center" android:gravity="center"
- />
- <TextView android:id="@+id/load_info_text" android:text="@string/loading" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:textColor="#FFFFFF"
- android:padding="10dip" />
- </LinearLayout>
3.上面的核心代码就是那个style,下面我们看下这个style代码;
- <stylename="CustomProgessBarStyle">
- <itemname="android:indeterminateDrawable">@drawable/custom_progress_bar</item>
- <itemname="android:minWidth">50dip</item>
- <itemname="android:maxWidth">50dip</item>
- <itemname="android:minHeight">50dip</item>
- <itemname="android:maxHeight">50dip</item>
- </style>
4.我们看第一个item,也就是不稳定的图片,也是关键代码。自定义的drawable,我们知道res下的drawable文件中可以定义多种样式的drawable资源文件,
比如常用的动画放大缩小平移资源,
还有设计按钮中常用的 selector选择器,以及我们现在用到的 animation-list。
- <animation-listxmlns:android="http://schemas.android.com/apk/res/android"
- android:oneshot="false"android:visible="true">
- <itemandroid:drawable="@drawable/flower1"android:duration="500"/>
- <itemandroid:drawable="@drawable/flower2"android:duration="500"/>
- <itemandroid:drawable="@drawable/flower3"android:duration="500"/>
- <itemandroid:drawable="@drawable/flower4"android:duration="500"/>
- </animation-list>
四张图片,间隔时间为500毫秒。于是小花就转动起来了。
以上即是小花图ui设计思路。
下面在提下关于logo界面进入时,有时我们也会用到的一个加载动画效果:
比如:
这个纯粹是是一个ProgressBar,然后自定义了一下样式而已:
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"android:layout_width="fill_parent"
- android:background="@drawable/lottery_main_bg"android:gravity="center"
- android:layout_height="fill_parent">
- <ProgressBarandroid:indeterminateDrawable="@drawable/custom_progress_bar"
- android:layout_marginTop="30dip"android:indeterminate="false"
- android:id="@+id/CustomprogressBar"android:layout_width="225dip"
- android:layout_height="15dip"/>
- </LinearLayout>
然后是drawable文件:
- <animation-listxmlns:android="http://schemas.android.com/apk/res/android"
- android:oneshot="false"android:visible="true">
- <itemandroid:drawable="@drawable/load01"android:duration="200"/>
- <itemandroid:drawable="@drawable/load02"android:duration="200"/>
- <itemandroid:drawable="@drawable/load03"android:duration="200"/>
- <itemandroid:drawable="@drawable/load04"android:duration="200"/>
- <itemandroid:drawable="@drawable/load05"android:duration="200"/>
- <itemandroid:drawable="@drawable/load06"android:duration="200"/>
- </animation-list>
其实总觉得这样挺浪费资源的,一个加载条就要这么多图片资源。
以前也看到过说直接用一张图,然后类似于游戏中地图那样的切割法,在代码中动态剪彩和绘制。
有兴趣的可以尝试下。
- Android中自定义的加载对话框和加载条
- Android中自定义的加载对话框和加载条
- ANDROID中自定义的加载对话框和加载条
- Android中自定义的加载对话框和加载条
- Android中自定义的加载对话框和加载条
- android中自定义加载的对话框。。。。
- Android自定义加载对话框
- Android自定义网络加载中对话框
- Android 自定义加载中
- Android 自定义加载条和Zxing扫描二维码
- Android中自定义ProgressDialog实现加载滚动条(加载中…)效果
- androidの自定义加载对话框ProgressDialog
- android 自定义Alertdialog对话框用于耗时加载
- Android 加载对话框的实现
- 自定义对话框 ,加载动画
- Android自定义无限加载条-彩虹
- 自定义圆形加载条
- 自定义加载条+百分比
- Misconceptions About iOS Multitasking
- 驱动案例三:platform按键驱动(二、驱动)
- 数据库原理模拟试卷
- C++模板元编程技术
- SQL1117N 由于 ROLL-FORWARD PENDING,不能连接或激活数据库 "EBILL"。
- Android中自定义的加载对话框和加载条
- android开发中遇到unknownhostException
- asp.net cookies用法
- vim查看映射定义的文件
- jquery的live post使用
- android webview 任何密度,屏幕大小。
- socket 编程下 inet_ntoa() 函数的使用与注意事项
- 数据库设计之分表设计
- js操作DOM--添加、删除节点