Sar*_*ran 9 android image android-gridview
我一直致力于创建图像的网格视图,图像存在于Assets文件夹中.从android链接中的assets文件夹打开文件帮助我使用位图来读取它.我目前的代码是:
public View getView(final int position, View convertView, ViewGroup parent)
{
try
{
AssetManager am = mContext.getAssets();
String list[] = am.list("");
int count_files = imagelist.length;
for(int i= 0;i<=count_files; i++)
{
BufferedInputStream buf = new BufferedInputStream(am.open(list[i]));
Bitmap bitmap = BitmapFactory.decodeStream(buf);
imageView.setImageBitmap(bitmap);
buf.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序确实从Assets文件夹中读取图像,但它没有遍历网格视图中的单元格.网格视图的所有单元格具有从该组图像中拾取的相同图像.任何人都可以告诉我如何迭代细胞仍然有不同的图像?
我在ImageAdapter类中有上面的代码,它扩展了BaseAdapter类,在我的主类中,我将它与我的gridview链接:
GridView gv =(GridView)findViewById(R.id.gridview);
gv.setAdapter(new ImageAdapter(this, assetlist));
Run Code Online (Sandbox Code Playgroud)
Saran,非常感谢您提前提供任何帮助
Som*_*ere 19
Saran,下面是我用来在图库资产文件夹中显示图片的方法.我想这与gridview是一样的:
public class myActivitye extends Activity
{
private Gallery mGallery;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mGallery = (Gallery) findViewById(R.id.mygalleryinxml);
//load images into memory
mBitArray = new Bitmap[4];
try
{
//these images are stored in the root of "assets"
mBitArray[0] = getBitmapFromAsset("pic1.png");
mBitArray[1] = getBitmapFromAsset("pic2.png");
mBitArray[2] = getBitmapFromAsset("pic3.png");
mBitArray[3] = getBitmapFromAsset("pic4.png");
}
catch (IOException e)
{
e.printStackTrace();
}
mGallery.setAdapter(new GalleryAdapter(this, mBitArray));
}
public class GalleryAdapter extends BaseAdapter
{
//member variables
private Context mContext;
private Bitmap[] mImageArray;
//constructor
public GalleryAdapter(Context context, Bitmap[] imgArray)
{
mContext = context;
mImageArray = imgArray;
}
public int getCount()
{
return mImageArray.length;
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
//returns the individual images to the widget as it requires them
public View getView(int position, View convertView, ViewGroup parent)
{
final ImageView imgView = new ImageView(mContext);
imgView.setImageBitmap(mImageArray[position]);
//put black borders around the image
final RelativeLayout borderImg = new RelativeLayout(mContext);
borderImg.setPadding(20, 20, 20, 20);
borderImg.setBackgroundColor(0xff000000);//black
borderImg.addView(imgView);
return borderImg;
}
}//end of: class GalleryAdapter
/**
* Helper Functions
* @throws IOException
*/
private Bitmap getBitmapFromAsset(String strName) throws IOException
{
AssetManager assetManager = getAssets();
InputStream istr = assetManager.open(strName);
Bitmap bitmap = BitmapFactory.decodeStream(istr);
istr.close();
return bitmap;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
无需每次都阅读所有项目。只读取 getView 方法调用中给定位置的项目。并且当时只显示该项目。
BufferedInputStream buf = new BufferedInputStream(am.open(list[position]));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28019 次 |
| 最近记录: |