首页 > 其他分享 >【Android开发】范例1-显示在标题上的进度条

【Android开发】范例1-显示在标题上的进度条

时间:2023-03-19 11:06:24浏览次数:44  
标签:范例 layout 进度条 LinearLayout import Android android 图片


实现一个界面,实现在向页面添加图片时,在标题上显示一个水平进度条,当图片载入完毕后,隐藏进度条并显示图片

具体实现方法:
res/layout/main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:id="@+id/layout1"
android:gravity="center">

</LinearLayout>


MainActivity:


package com.example.test;


import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;


public class MainActivity extends Activity{
private int imageId[]=new int[]{R.drawable.img01,R.drawable.img02,
R.drawable.img03,R.drawable.img04};//定义并初始化一个保存要显示图片id的数组
private LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS);//显示水平进度条
setContentView(R.layout.main);
layout=(LinearLayout)findViewById(R.id.layout1);
new MyTack().execute();
}

/*
* 创建继承自AsyncTask的异步类,并重写onPreExecute()、doInBackground()、onProgressUpdate()
* 和onPostExecute方法,实现在向页面添加图片时,在标题上显示一个水平进度条,当图片载入完毕后,
* 隐藏进度条并显示图片
* */

//功能:创建异步任务,添加4张图片
class MyTack extends AsyncTask<Void,Integer,LinearLayout>{

@Override
protected void onPreExecute() {
setProgressBarVisibility(true);//执行任务前让进度条可见
super.onPreExecute();
}

//功能:要执行的耗时任务(此方法异步执行)
@Override
protected LinearLayout doInBackground(Void... params) {
LinearLayout layout2=new LinearLayout(MainActivity.this);
for (int i = 1; i < 5; i++) {
ImageView imageView=new ImageView(MainActivity.this);//创建一个ImageView对象
imageView.setLayoutParams(new LayoutParams(245,108));
imageView.setImageResource(imageId[i-1]);//设置要显示的图片
layout2.addView(imageView);//将imageView添加到线形布局管理器中
try {
Thread.sleep(10);//为了更好的观察到效果,我们让线程休眠10毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress(i);//触发onProgressUpdate(Progress...)方法更新进度
}
return layout2;
}

//功能:更新进度(此方法在主线程中运行)
@Override
protected void onProgressUpdate(Integer... values) {
setProgress(values[0]*2500);//动态更新最新进度
super.onProgressUpdate(values);
}
//功能:执行任务后(此方法在主线程中运行)
@Override
protected void onPostExecute(LinearLayout result) {
setProgressBarVisibility(false);//任务执行后隐藏进度条
layout.addView(result);//将水平线性布局管理器添加到布局文件中添加的垂直线性布局管理器中
super.onPostExecute(result);
}


}
}


运行效果如下:


下图是加载过程,标题栏上方有一个进度条显示的是加载图片的进度

【Android开发】范例1-显示在标题上的进度条_ProgressBar

下图是加载完成,显示出图片

【Android开发】范例1-显示在标题上的进度条_AsyncTask_02

标签:范例,layout,进度条,LinearLayout,import,Android,android,图片
From: https://blog.51cto.com/u_16012040/6130987

相关文章

  • 【Android开发】范例2-实现幻灯片式图片浏览器
    我们来实现一个幻灯片式图片浏览器:最下面一个画廊视图,选中画廊中的图片,会在上面的ImageSwitcher控件中显示大图。效果图如图实现方法:在布局文件......
  • 【Android开发】高级组件-图像切换器
    图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的“Windows照片查看器”中的上一张、下一张切换图片的功能。在使用ImageSwitcher时,必须实现V......
  • Android Studio 样式和主题背景
    样式和主题背景转载自 StylesandThemes | AndroidDevelopers借助Android中的样式和主题背景,您可以将应用设计的细节与界面的结构和行为分开,其作用类似于网......
  • 【Android 逆向】【攻防世界】easyjni
    1.apk安装到手机,提示需要输入flag2.jadx打开apkpublicclassMainActivityextendsc{static{System.loadLibrary("native");}/*JADXIN......
  • ArcGIS Runtime for Android 1 开发环境部署
    AndroidStudio,与VisualStudio一样同为开发IDE,但它对国内的友好程度却不如VisualStudio,所有,有必要记录一下安装部署的主要步骤和注意事项。一、完全清理如果未安装过An......
  • 【Android 逆向】【攻防世界】easy-so
    1.apk安装到手机,随便输入点内容,提示错误2.jadx打开apkbtn.setOnClickListener(newView.OnClickListener(){//fromclass:com.testjava.jack.pingan2.Main......
  • MT6737 android 7.0 竖屏横用后u盘以及下载app无法打开
    问题描述:MT6737android7.0竖屏横用后u盘以及下载app无法打开问题的原因:下载APP的布局不支持横屏显示修改方法:diff--gita/frameworks/base/packages/DocumentsUI/Androi......
  • android重建手记全是坑
    当前版本:2022.1.1Patch2,每个大版本更迭时,旧项目都会出莫名奇妙的错误无法运行,主要是项目配置的问题,与其找解决方案远不如重开来得简单开心。本次主要是kotlin更新后报......
  • 【Android 逆向】【攻防世界】app2
    1.手机安装apk,随便点击,进入到第二个页面就停了2.jadx打开apk,发现一共有三个activity,其中第三个activity:FileDataActivity里面有东西publicclassFileDataActivitye......
  • 【Android 逆向】【攻防世界】app1
    1.apk安装到手机,老套路了2.jadx打开this.btn.setOnClickListener(newView.OnClickListener(){//fromclass:com.example.yaphetshan.tencentgreat.MainA......