Android 使用占位符和进度条加载查询图像
Android aquery image loading both with placeholder and progressbar
我正在尝试使用查询来加载图像。这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ProgressBar
android:layout_width="60dip"
android:layout_height="60dip"
android:id="@+id/progress"
android:layout_centerInParent="true"
/>
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/imageViewPagerImage"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="fitCenter" />
</RelativeLayout>
我使用如下查询:
Bitmap placeholder;
@Override
public Object instantiateItem(ViewGroup container, int position) {
View itemView = mLayoutInflater.inflate(R.layout.product_detail_pager_item, container, false);
ImageView imageView = (ImageView) itemView.findViewById(R.id.imageViewPagerImage);
placeholder = null;
placeholder = androidQuery.getCachedImage(R.drawable.product_detail_big);
androidQuery.id(imageView).progress(R.id.progress).image(allUrls.get(position), false, true, 0, 0, placeholder, Constants.FADE_IN);
imageView.setOnClickListener(listener);
container.addView(itemView);
return itemView;
}
问题是,占位符图像在加载图像之前显示,但不显示进度条。如果我将进度条放在 xml 布局中的图像视图下方,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/imageViewPagerImage"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="fitCenter" />
<ProgressBar
android:layout_width="60dip"
android:layout_height="60dip"
android:id="@+id/progress"
android:layout_centerInParent="true" />
</RelativeLayout>
这次placeholder和progressbar都显示了,但是加载图片后progressbar并没有消失。我想同时显示占位符和进度条,但我希望进度条在加载图像后消失。谁能帮我解决这个问题?
谢谢。
我发现了问题。
看来我必须在布局中获取对进度条对象的引用并像下面这样使用它:
ProgressBar progress = (ProgressBar) itemView.findViewById(R.id.progress);
androidQuery.id(imageView).progress(progress).image(allUrls.get(position), false, true, 0, 0, placeholder, Constants.FADE_IN);
我正在尝试使用查询来加载图像。这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ProgressBar
android:layout_width="60dip"
android:layout_height="60dip"
android:id="@+id/progress"
android:layout_centerInParent="true"
/>
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/imageViewPagerImage"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="fitCenter" />
</RelativeLayout>
我使用如下查询:
Bitmap placeholder;
@Override
public Object instantiateItem(ViewGroup container, int position) {
View itemView = mLayoutInflater.inflate(R.layout.product_detail_pager_item, container, false);
ImageView imageView = (ImageView) itemView.findViewById(R.id.imageViewPagerImage);
placeholder = null;
placeholder = androidQuery.getCachedImage(R.drawable.product_detail_big);
androidQuery.id(imageView).progress(R.id.progress).image(allUrls.get(position), false, true, 0, 0, placeholder, Constants.FADE_IN);
imageView.setOnClickListener(listener);
container.addView(itemView);
return itemView;
}
问题是,占位符图像在加载图像之前显示,但不显示进度条。如果我将进度条放在 xml 布局中的图像视图下方,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/imageViewPagerImage"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="fitCenter" />
<ProgressBar
android:layout_width="60dip"
android:layout_height="60dip"
android:id="@+id/progress"
android:layout_centerInParent="true" />
</RelativeLayout>
这次placeholder和progressbar都显示了,但是加载图片后progressbar并没有消失。我想同时显示占位符和进度条,但我希望进度条在加载图像后消失。谁能帮我解决这个问题?
谢谢。
我发现了问题。
看来我必须在布局中获取对进度条对象的引用并像下面这样使用它:
ProgressBar progress = (ProgressBar) itemView.findViewById(R.id.progress);
androidQuery.id(imageView).progress(progress).image(allUrls.get(position), false, true, 0, 0, placeholder, Constants.FADE_IN);