从gridView在imageView中显示图像(所有图像从数据库中获取)
我想在ImageView中设置图像。 GridView中的这个图像。gridview中的所有图像都是在运行时从MySql DataBase中获取的。这里是我的代码。从gridView在imageView中显示图像(所有图像从数据库中获取)
GalleryFragment.java
public class GalleryFragment extends Fragment {
GridView grid;
private List<User> userList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.gallery, null);
grid=(GridView)rootView.findViewById(R.id.grid);
imagesFromDb();
return rootView;
}
private void imagesFromDb() {
//Code Which Is Get all images from database
setData();
}
private void setData() {
AdapterGallery adapter = new AdapterGallery(getActivity(),userList);
grid.setAdapter(adapter);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent i = new Intent(getActivity(), Galleryfullimage.class);
i.putExtra("id", position);
startActivity(i);
}
});
}
}
AdapterGallery.java
public class AdapterGallery extends BaseAdapter {
private Context mContext;
private List<User> userList;
public AdapterGallery(Context context, List<User> userList){
mContext=context;
this.userList=userList;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return userList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//View grid;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.gallerysecond, null);
TextView en = (TextView) convertView.findViewById(R.id.grid_text);
ImageView imageView= (ImageView) convertView.findViewById(R.id.grid_image);
User contacts = userList.get(position);
en.setText(contacts.gall_name);
Picasso.with(mContext).load(ServerHelper.galleryimgpath+contacts.gall_img)
.placeholder(mContext.getResources().getDrawable(R.drawable.ic_launcher))
.error(mContext.getResources().getDrawable(R.drawable.ramanisir)).into(imageView);
Log.e("Path", ServerHelper.galleryimgpath + contacts.gall_img);
return convertView;
}
}
Galleryfullimage.java
public class Galleryfullimage extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galleryfullimage);
}
}
我在Galleryfullimage.java?i显示完整图片做什么都有布局文件galleryfullimage.xml。在那个文件里有一个ImageView。
请引导我。
预先感谢您。
与更改OnItemClick在GalleryFragment:
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent i = new Intent(getActivity(), Galleryfullimage.class);
i.putExtra("User_Image", userList.get(position).gall_img);
startActivity(i);
}
下一页使用在Galleryfullimage活动:
public class Galleryfullimage extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galleryfullimage);
String imageName = getIntent().getStringExtra("User_Image");
//Now show this image to imageview using same picasso code
Picasso.with(this).load(ServerHelper.galleryimgpath+imageName)
.placeholder(getResources().getDrawable(R.drawable.ic_launcher))
.error(getResources().getDrawable(R.drawable.ramanisir))
.into(imageView/*Full image view*/);
}
}
谢谢它正常工作。 –
如果它适合您,请接受答案。 –
似乎你只传递位置到GallaryFullImage活动。 因此,在新的活动中,您不会有特定网格模型的对象引用。 因此,不要只传递位置,而是像这样将意图参数的完整路径传递为意图参数。
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
User contacts = ((User) grid.getAdapter()).getItem(position);
Intent i = new Intent(getActivity(),Galleryfullimage.class);
//i.putExtra("id", position);
i.putExtra("Path", ServerHelper.galleryimgpath + contacts.gall_img);
startActivity(i);
}
});
然后在Gallaryfullimage Activity中获取此路径并进行设置。
谢谢...为了回答 –
您的代码面临的问题是什么? – Manishika
您必须单独加载完整图像,因为毕加索将根据您要加载的imageview的大小加载图像。 –
如果我在gridView中单击图像比它不显示完整图像。 –