对用GridView实现Gallery的效果再做一个处理,假设图片加载是通过服务器端的,那么在没有加载完毕的时候界面上要有个ProgressBar显示,当加载完毕后,取消ProgressBar。
这里是示意性的代码,图片是一上来就加载了,实际情况应该是只看到ProgressBar。这里需要使用FrameLayout,它可以让多个视图重叠在一起。
看布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="200dp">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="最近访问人物" />
<FrameLayout android:layout_width="fill_parent"
android:layout_height="match_parent">
<HorizontalScrollView android:layout_width="fill_parent"
android:layout_height="160dp">
<FrameLayout android:layout_width="fill_parent"
android:layout_height="match_parent">
<LinearLayout android:layout_width="1100dp"
android:layout_height="match_parent" android:orientation="horizontal">
<FrameLayout android:layout_width="fill_parent"
android:layout_height="match_parent">
<GridView android:id="@+id/grid" android:layout_width="fill_parent"
android:gravity="center" android:layout_height="fill_parent"
android:horizontalSpacing="1.0dip" android:verticalSpacing="1.0dip"
android:stretchMode="spacingWidthUniform" android:numColumns="auto_fit"
android:columnWidth="80dip">
</GridView>
</FrameLayout>
</LinearLayout>
</FrameLayout>
</HorizontalScrollView>
<ProgressBar android:id="@+id/p1" android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
</LinearLayout>
在代码中调用:
bar.setVisibility(ProgressBar.GONE);
即可让ProgressBar在界面中消失。
这里因为是模拟正式环境,做了个延时取消ProgressBar。使用了Android Handler和Message机制。其实自己写个Timer或者线程啥的都可以完成任务。但不是最佳实践。
这是在Activity的onCreate方法中实现的延时关闭ProgressBar的代码片段:
Message message=new Message();
message.obj=(ProgressBar) headerView.findViewById(R.id.p1);;
new Handler(){
public void handleMessage(Message msg) {
ProgressBar bar=(ProgressBar) msg.obj;
bar.setVisibility(ProgressBar.GONE);
}
}.sendMessageDelayed(message,1000*10);
全部源代码:
http://easymorse.googlecode.com/svn/tags/grid.demo-0.2.0/
分享到:
相关推荐
在Android开发中,ProgressBar是一个非常常见的组件,它用于表示一个正在进行的操作进度,用户可以通过这个组件了解操作的进度,增加交互体验。本示例探讨的是如何使用纯Java代码创建ProgressBar,而不是借助XML布局...
在软件开发中,进度条是一种常见的用户界面元素,它用于向用户展示某个操作或任务的完成状态。在标题“进度条显示百分比”和描述“进度条显示文字 进度条显示百分比 在进度条上显示百分比让进度信息更直观”中,我们...
可以使用`System.Threading.Tasks.Task.Delay`方法来实现延时,从而创建不同的更新速度。 - 高速: ```csharp for (int i = 0; i ; i++) { progressBar.Value = i; await Task.Delay(10); // 快速更新 } ```...
7. **自定义进度条**:如果默认的ProgressBar不能满足需求,可以考虑自定义控件,通过继承ProgressBar类并重写其Paint事件,实现更复杂的显示效果。 通过以上步骤,我们可以创建一个基础的WinForm进度条程序。在...
// 延时,模拟耗时操作 progressBar1.Value = i; } // 任务完成,关闭窗体 progressForm.Close(); button1.Enabled = true; // 重新启用按钮 } ``` 3. **处理窗体关闭**:在进度条窗体的代码中,我们可以...
使用RxJava其他操作符来做延时、轮询、转化、筛选等操作 使用okhttp3对网络返回内容做缓存,还有日志、超时重连、头部消息的配置 使用Material Design控件和动画 使用MVP架构整个项目,对应于model、ui、presenter三...
本压缩包"安卓Android源码——闪屏加退出提示应用.zip"可能包含了实现这两个功能的具体代码示例。 1. **闪屏页(Splash Screen)**: 闪屏页通常是在应用程序启动时首先展示的页面,它一般用来显示品牌标识、加载...
值得注意的是,实际应用中,进度条的实现可能会更复杂,需要考虑异步操作、动画效果、自定义样式等因素。例如,对于Java,可能需要结合Swing的Timer类来实现更平滑的动画效果;而对于JavaScript,可以使用CSS3动画或...
// 延时以模拟操作耗时 Sleep(10); } } ``` 在实际项目中,你可能还需要处理用户与进度条的交互,例如通过消息响应函数更新进度条,或者根据应用程序的需要动态调整进度条的样式和颜色。通过Pgrsbar这个文件名,...
// 延时以模拟耗时操作 emit updateProgress(i); } } void MyWindow::updateProgress(int value) { m_progressBar->setValue(value); } ``` 在这个例子中,`startTask()`函数模拟了耗时操作,并通过`emit ...
在C#中,我们可以使用System.Windows.Controls命名空间下的ProgressBar类来创建和操作进度条。在XAML文件中,你可以这样声明一个进度条: ```xml <ProgressBar Name="progressBar" Width="300" Height="20" Margin=...
在资源中,你可能找到如何通过继承ProgressBar或使用自定义ViewGroup来实现自定义进度条的方法。这通常涉及到重写`onDraw()`方法,使用Canvas进行绘制,并可能涉及线程管理以实现平滑的动画效果。 2. **自定义View...
这个控件可以设置最小值(Min)和最大值(Max),以及当前值(Value)。当Value逐渐增加到Max时,进度条会填充。 1. **创建界面**: - 打开VB,创建一个新的Windows Forms应用程序项目。 - 在Form上添加一个...
JQuery是一款强大的JavaScript库,简化了DOM操作、事件处理以及动画效果等任务。下面我们将深入探讨如何利用JQuery创建浮动的进度条,并提供一个实际的实例。 首先,我们需要引入JQuery库。通常,我们会在HTML文件...
jQuery,一个广泛使用的JavaScript库,提供了一系列强大的API来简化DOM操作,动画效果,以及事件处理,使得创建动态和交互式的进度条变得更加简单。本项目“jquery可控制调节进度条代码”就是一个实例,展示了如何...
本篇将深入探讨磁盘管理的基本概念、功能以及如何通过可运行代码实现磁盘操作的监控,特别是涉及到的“进度条”技术。 一、磁盘管理基础 1. **磁盘结构**:磁盘由多个扇区(Sector)组成,每个扇区通常包含512字节...
开发者可以通过setRepeating()或scheduleAtFixedRate()方法设置定时任务,这对于实现定时更新、延时操作等功能非常有用。 5. **MP3处理**: 在Android中,处理音频文件,如MP3,通常涉及MediaPlayer类。MediaPlayer...
使用RxJava其他操作符来做延时、轮询、转化、筛选等操作 使用okhttp3对网络返回内容做缓存,还有日志、超时重连、头部消息的配置 使用Material Design控件和动画 使用MVP架构整个项目,对应于model、ui、...
这包括设置宽度、高度、背景颜色、边框圆角、阴影以及透明度。对于Vista风格,可以使用渐变背景和透明度来模仿Aero效果: ```css #vista-progress-bar { width: 100%; height: 20px; background-color: #f8f8f8...
"仿微信自定义录制视频按钮"是一个专为Android或iOS平台设计的功能,其目标是提供与微信应用类似的视频录制体验,包括长按操作、单击交互以及显示录制进度等功能。这个功能通常涉及多个技术点,下面将详细阐述。 ...