2017-04-10 7 views
-2

Ich möchte ImageView von String zu Int bei picture.setImageResource(); bekommen Ich verwende String zu Integer Change, es wird nicht in GridView angezeigt. Wie bekomme ich Bildgröße und setImageView?Wie setze ich ImageResource?

Menu.java

public class Menu { 

private Integer id; 
private String menuImage; 

    public Integer getId() { 
     return id; 
    } 

    public void setId(Integer id) { 
     this.id = id; 
    } 

    public String getMenuImage() { 
     return menuImage; 
    } 

    public void setMenuImage(String menuImage) { 
     this.menuImage = menuImage; 
    } 

MyAdapter.java

public class MyAdapter extends BaseAdapter { 
    List<Menu> mItems = new ArrayList<Item>(); // from server 
    LayoutInflater mInflater; 

    public MenuGridViewAdapter(Context context, List<Menu> menuList) { 
     mInflater = LayoutInflater.from(context); 
     this.menuList = menuList; 
    } 

    @Override 
    public int getCount() { 
     return mItems.size(); 
    } 

    @Override 
    public Menu getItem(int i) { 
     return mItems.get(i); 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     View v = view; 
     ImageView picture; 
     TextView name; 

     if (v == null) { 
      v = mInflater.inflate(R.layout.grid_item, viewGroup, false); 
      v.setTag(R.id.picture, v.findViewById(R.id.picture)); 
     } 

     picture = (ImageView) v.getTag(R.id.picture); 

     Item item = getItem(i);  
     picture.setImageResource(); // 

     return v; 
    } 

Antwort

0

Dies wird Ihnen helfen, die ID des jeweiligen Bildes erhalten in setImageResource zu verwenden()

int id = getResources().getIdentifier("drawable/your_image", "id", "your_package_name"); 
    imageView.setImageResource(id); 

und als für Höhe und Breite können Sie Parameter wie diese setzen

LinearLayout linearLayout = (LinearLayout) v.findViewById(R.id.imgLayout2); 
    LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(340, 340); 
    parms.gravity = Gravity.CENTER; 
    parms.setMargins(20, 50, 20, 50); 
    final ImageView imageView = new ImageView(getActivity()); 
    imageView.setLayoutParams(parms); 
0

imageView.setImageResource() erwartet ein Bild von Drawable, und das ist ein int, z.B .: R.drawable.sample Sie können picasso library statt setImageResource verwenden. Dazu

Fügen Sie die folgende Zeile hinzu, um ein Bild in imageview zu laden.

Picasso.with(context).load(R.drawable.drawableName).into(picture); 

fügen Sie diese in Ihrer build.gradle Datei:

compile 'com.squareup.picasso:picasso:2.5.2' 
0

Verwenden Sie diesen Code:

public class GridViewAdapter extends BaseAdapter { 

    private Context mContext; 

    public GridViewAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return mThumbIds.length; 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { 
      // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageView.setImageUri(Uri.parse("your url here")); // updated code 
     return imageView; 
    } 

    // references to our images 
    private Integer[] mThumbIds = { 
      R.mipmap.ic_launcher, R.mipmap.ic_launcher, 
      R.mipmap.ic_launcher, R.mipmap.ic_launcher, 
      R.mipmap.ic_launcher, R.mipmap.ic_launcher, 
      R.mipmap.ic_launcher, R.mipmap.ic_launcher, 
      R.mipmap.ic_launcher, R.mipmap.ic_launcher, 
    }; 

} 
+0

hallo, @Simranjeet Singh Bilder werden kommen von Server innerhalb Liste

getImage() sind String NICHT int, Wie komme ich davon? –