2016-11-23 157 views
0

我想在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中單擊圖像比它不顯示完整圖像。 –

回答

1

與更改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

如果它適合您,請接受答案。 –

1

似乎你只傳遞位置到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

謝謝...爲了回答 –

相關問題