`
liuweisir
  • 浏览: 43373 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

加ProgressBar以及实现延时操作

阅读更多

用GridView实现Gallery的效果再做一个处理,假设图片加载是通过服务器端的,那么在没有加载完毕的时候界面上要有个ProgressBar显示,当加载完毕后,取消ProgressBar。

image

这里是示意性的代码,图片是一上来就加载了,实际情况应该是只看到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/

分享到:
评论

相关推荐

    纯Java代码创建ProgressBar,不使用xml

    在Android开发中,ProgressBar是一个非常常见的组件,它用于表示一个正在进行的操作进度,用户可以通过这个组件了解操作的进度,增加交互体验。本示例探讨的是如何使用纯Java代码创建ProgressBar,而不是借助XML布局...

    进度条显示百分比

    在软件开发中,进度条是一种常见的用户界面元素,它用于向用户展示某个操作或任务的完成状态。在标题“进度条显示百分比”和描述“进度条显示文字 进度条显示百分比 在进度条上显示百分比让进度信息更直观”中,我们...

    C#高中低三速显示进度条

    可以使用`System.Threading.Tasks.Task.Delay`方法来实现延时,从而创建不同的更新速度。 - 高速: ```csharp for (int i = 0; i ; i++) { progressBar.Value = i; await Task.Delay(10); // 快速更新 } ```...

    winform进度条程序

    7. **自定义进度条**:如果默认的ProgressBar不能满足需求,可以考虑自定义控件,通过继承ProgressBar类并重写其Paint事件,实现更复杂的显示效果。 通过以上步骤,我们可以创建一个基础的WinForm进度条程序。在...

    Winform 进度条实现

    // 延时,模拟耗时操作 progressBar1.Value = i; } // 任务完成,关闭窗体 progressForm.Close(); button1.Enabled = true; // 重新启用按钮 } ``` 3. **处理窗体关闭**:在进度条窗体的代码中,我们可以...

    Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide + Kotlin

    使用RxJava其他操作符来做延时、轮询、转化、筛选等操作 使用okhttp3对网络返回内容做缓存,还有日志、超时重连、头部消息的配置 使用Material Design控件和动画 使用MVP架构整个项目,对应于model、ui、presenter三...

    安卓Android源码——闪屏加退出提示应用.zip

    本压缩包"安卓Android源码——闪屏加退出提示应用.zip"可能包含了实现这两个功能的具体代码示例。 1. **闪屏页(Splash Screen)**: 闪屏页通常是在应用程序启动时首先展示的页面,它一般用来显示品牌标识、加载...

    很炫的进度条,完整代码例子!

    值得注意的是,实际应用中,进度条的实现可能会更复杂,需要考虑异步操作、动画效果、自定义样式等因素。例如,对于Java,可能需要结合Swing的Timer类来实现更平滑的动画效果;而对于JavaScript,可以使用CSS3动画或...

    vc在状态栏中实现进度条指示器控件

    // 延时以模拟操作耗时 Sleep(10); } } ``` 在实际项目中,你可能还需要处理用户与进度条的交互,例如通过消息响应函数更新进度条,或者根据应用程序的需要动态调整进度条的样式和颜色。通过Pgrsbar这个文件名,...

    7.3 通用控件-----

    // 延时以模拟耗时操作 emit updateProgress(i); } } void MyWindow::updateProgress(int value) { m_progressBar-&gt;setValue(value); } ``` 在这个例子中,`startTask()`函数模拟了耗时操作,并通过`emit ...

    012.Visual Studio 2017 C#WPF弹出进度条.rar

    在C#中,我们可以使用System.Windows.Controls命名空间下的ProgressBar类来创建和操作进度条。在XAML文件中,你可以这样声明一个进度条: ```xml &lt;ProgressBar Name="progressBar" Width="300" Height="20" Margin=...

    安卓进度条loadingprogress相关-android自定义view自定义进度条图片合成图片绘制等功能很实用的自定义控件.rar

    在资源中,你可能找到如何通过继承ProgressBar或使用自定义ViewGroup来实现自定义进度条的方法。这通常涉及到重写`onDraw()`方法,使用Canvas进行绘制,并可能涉及线程管理以实现平滑的动画效果。 2. **自定义View...

    安装过程进度条模拟

    这个控件可以设置最小值(Min)和最大值(Max),以及当前值(Value)。当Value逐渐增加到Max时,进度条会填充。 1. **创建界面**: - 打开VB,创建一个新的Windows Forms应用程序项目。 - 在Form上添加一个...

    JQuery浮动的进度条例子

    JQuery是一款强大的JavaScript库,简化了DOM操作、事件处理以及动画效果等任务。下面我们将深入探讨如何利用JQuery创建浮动的进度条,并提供一个实际的实例。 首先,我们需要引入JQuery库。通常,我们会在HTML文件...

    jquery可控制调节进度条代码.zip

    jQuery,一个广泛使用的JavaScript库,提供了一系列强大的API来简化DOM操作,动画效果,以及事件处理,使得创建动态和交互式的进度条变得更加简单。本项目“jquery可控制调节进度条代码”就是一个实例,展示了如何...

    Disk management.rar

    本篇将深入探讨磁盘管理的基本概念、功能以及如何通过可运行代码实现磁盘操作的监控,特别是涉及到的“进度条”技术。 一、磁盘管理基础 1. **磁盘结构**:磁盘由多个扇区(Sector)组成,每个扇区通常包含512字节...

    android案例代码

    开发者可以通过setRepeating()或scheduleAtFixedRate()方法设置定时任务,这对于实现定时更新、延时操作等功能非常有用。 5. **MP3处理**: 在Android中,处理音频文件,如MP3,通常涉及MediaPlayer类。MediaPlayer...

    Android项目源码极客日报一款纯粹的阅读App.zip

    使用RxJava其他操作符来做延时、轮询、转化、筛选等操作 使用okhttp3对网络返回内容做缓存,还有日志、超时重连、头部消息的配置 使用Material Design控件和动画 使用MVP架构整个项目,对应于model、ui、...

    用 Javascript 模拟 Vista 风格进度条

    这包括设置宽度、高度、背景颜色、边框圆角、阴影以及透明度。对于Vista风格,可以使用渐变背景和透明度来模仿Aero效果: ```css #vista-progress-bar { width: 100%; height: 20px; background-color: #f8f8f8...

    仿微信自定义录制视频按钮

    "仿微信自定义录制视频按钮"是一个专为Android或iOS平台设计的功能,其目标是提供与微信应用类似的视频录制体验,包括长按操作、单击交互以及显示录制进度等功能。这个功能通常涉及多个技术点,下面将详细阐述。 ...

Global site tag (gtag.js) - Google Analytics