从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。

请引导我。

预先感谢您。

+0

您的代码面临的问题是什么? – Manishika

+0

您必须单独加载完整图像,因为毕加索将根据您要加载的imageview的大小加载图像。 –

+0

如果我在gridView中单击图像比它不显示完整图像。 –

与更改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*/); 
     } 
} 
+0

谢谢它正常工作。 –

+0

如果它适合您,请接受答案。 –

似乎你只传递位置到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中获取此路径并进行设置。

+0

谢谢...为了回答 –