【发布时间】:2016-06-30 17:25:39
【问题描述】:
在我的 Android 应用程序中,我想使用 Picasso 在 GridView 中显示图像。所有图像都在我的扩展(obb)文件中。我可以通过 InputStream 从扩展文件中获取可绘制对象,但我不知道如何使用 Picasso 加载它们。到目前为止我的代码:
public class Tab3 extends Fragment {
public com.android.vending.expansion.zipfile.ZipResourceFile expansionFile;
public String[] photoID;
public Integer photoNumberOf;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab_3, container, false);
GridView gridView = (GridView) view.findViewById(R.id.photogridview);
gridView.setAdapter(new ImageAdapter(view.getContext())); // uses the view to get the context instead of getActivity().
return view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences settings = getActivity().getSharedPreferences("FILTER_PREFS", Context.MODE_PRIVATE);
String photoString = settings.getString("DESC_MainPhoto", null);
photoID = photoString.split(",");
photoNumberOf = photoID.length;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
private class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context context) {
mContext = context;
}
@Override
public int getCount() {
return photoID.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
} else {
imageView = (ImageView) convertView;
}
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
try {
expansionFile = com.android.vending.expansion.zipfile.APKExpansionSupport.getAPKExpansionZipFile(getActivity(), 2, 0);
InputStream fileStream = expansionFile.getInputStream(photoID[position] + ".jpg");
Drawable drawable = Drawable.createFromStream(fileStream, null);
} catch (IOException e) {
}
Picasso.with(getContext())
.load(???????????????????????????????)
.resize(width, 0)
.into(imageView);
return imageView;
}
}
【问题讨论】:
标签: android gridview picasso expansion