android 带图片进度条
时间: 2023-08-10 07:38:30 浏览: 39
您可以使用ProgressBar和AsyncTask来实现带图片的进度条。
首先,您需要在布局文件中添加一个ImageView和一个ProgressBar:
```
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/your_image" />
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
```
然后,在您的Activity中,您可以创建一个AsyncTask来加载图片并更新进度条:
```
public class LoadImageTask extends AsyncTask<Void, Integer, Bitmap> {
private Context mContext;
private ImageView mImageView;
private ProgressBar mProgressBar;
public LoadImageTask(Context context, ImageView imageView, ProgressBar progressBar) {
mContext = context;
mImageView = imageView;
mProgressBar = progressBar;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected Bitmap doInBackground(Void... voids) {
// Load image here
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.your_image);
return bitmap;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
// Update progress bar here
mProgressBar.setProgress(values[0]);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
mProgressBar.setVisibility(View.GONE);
mImageView.setImageBitmap(bitmap);
}
}
```
最后,在您的Activity的onCreate方法中,您可以创建并执行LoadImageTask:
```
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = findViewById(R.id.image_view);
ProgressBar progressBar = findViewById(R.id.progress_bar);
LoadImageTask task = new LoadImageTask(this, imageView, progressBar);
task.execute();
}
```
这样,您就可以在加载图片时显示进度条了。