【发布时间】:2015-02-25 19:58:21
【问题描述】:
我有一个应用程序可以在网格视图中加载一些图像。我有一个这样的自定义视图:
grid_item_view.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.entu.artapp.utils.SquareImageView
android:id="@+id/gridItem_squareImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:visibility="invisible"/>
<ProgressBar
android:id="@+id/gridItem_progressBar"
style="?android:attr/progressBarStyleSmall"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerInParent="true"
android:visibility="visible"/>
</RelativeLayout>
我在我的 GridView 适配器中使用它,如下所示:
图像适配器:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
//ArrayList<Bitmap> bitmapList;
List<ParseObject> urlList;
private LayoutInflater inflater;
public ImageAdapter(Context c, List<ParseObject> urlList) {
mContext = c;
this.urlList = urlList;
inflater = LayoutInflater.from(c);
//this.bitmapList = bitmapList;
}
public int getCount() {
return urlList.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View view, ViewGroup parent) {
View gridItem = view;
ViewHolder viewHolder;
if (gridItem == null) {
viewHolder = new ViewHolder();
gridItem = inflater.inflate(R.layout.grid_view_item, parent, false);
viewHolder.squareImageView = (SquareImageView) gridItem.findViewById(R.id.gridItem_squareImageView);
viewHolder.progressBar = (ProgressBar) gridItem.findViewById(R.id.gridItem_progressBar);
gridItem.setTag(viewHolder);
} else {
viewHolder= (ViewHolder) view.getTag();
}
//imageView.setImageBitmap(bitmapList.get(position));
Picasso.with(mContext).load(urlList.get(position).get("thumbnailURL").toString()).resize(mContext.getResources().getDisplayMetrics().widthPixels/2, mContext.getResources().getDisplayMetrics().widthPixels/2).into(viewHolder.squareImageView);
viewHolder.progressBar.setVisibility(View.INVISIBLE);
viewHolder.squareImageView.setVisibility(View.VISIBLE);
Log.e("gridviewitem: ", "" + position);
return gridItem;
}
class ViewHolder {
SquareImageView squareImageView;
ProgressBar progressBar;
}
}
由于某种原因,ProgressBar 根本不显示,只有一个空白屏幕,然后图像完成加载并显示图像。
感谢任何帮助!
干杯!
【问题讨论】:
标签: android gridview android-progressbar