2014-07-09 138 views
0

產品圖的應用程序的位置:http://imgur.com/6A92Yl6Android圖庫只顯示三張圖片

所以我已經設置了在一點擊中的畫廊,用戶可以選擇從視角的圖片,然後看到的圖片及其相應的爲它烤麪包。

問題是,只有三個圖像彈出。我不知道爲什麼,也沒有限制畫廊的變數,所以我不知所措。

我的主:

public class MainActivity<View> extends Activity 
{ 

ImageView selectedImage; 
private Integer[] mImageIds = { 
      R.drawable.image1, 
      R.drawable.image2, 
      R.drawable.image3, 
      R.drawable.image4, 
      R.drawable.image5, 
      R.drawable.image6, 
      R.drawable.image7, 
      R.drawable.image8, 
      R.drawable.image9, 
      R.drawable.image10 
    }; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

     Gallery gallery = (Gallery) findViewById(R.id.gallery1); 
    selectedImage=(ImageView)findViewById(R.id.imageView1); 
    gallery.setSpacing(1); 
    gallery.setAdapter(new GalleryImageAdapter(this)); 

    gallery.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
      Toast.makeText(MainActivity.this, "THIS TEXT SHOULD NEVER SHOW = " + position, Toast.LENGTH_SHORT).show(); 
      // show the selected Image 
      selectedImage.setImageResource(mImageIds[position]); 
     } 

     @Override 
     public void onItemClick(AdapterView<?> parent, android.view.View v, int position, long id) { 
      Toast.makeText(MainActivity.this, "Picture Number: " + position, Toast.LENGTH_SHORT).show(); 
      // show the selected Image 
      selectedImage.setImageResource(mImageIds[position]); 

     } 
    }); 
} 
} 

我的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<Gallery 
    android:id="@+id/gallery1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="350dp" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="100dp" 
    android:layout_weight="0.13" 
    android:src="@drawable/image1" /> 

</LinearLayout> 
+0

你沒有使用你的清單與適配器來填充它。顯示適配器的實現。 –

回答

1

我想你忘記了創建新GalleryImageAdapter時填充mImageIds適配器。

+0

已經有三個縮略圖。我如何填充其餘部分? – Jayizzle

1

您需使用適配器:

  1. 適配器更改呼叫:

    gallery.setAdapter(新GalleryImageAdapter(這一點,mImageIds));

  2. 添加/更新GalleryImageAdapter.java:

    import java.util.List; 
    
    import android.app.Activity; 
    import android.graphics.drawable.Drawable; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.BaseAdapter; 
    import android.widget.Gallery; 
    import android.widget.ImageView; 
    
    public class GalleryImageAdapter extends BaseAdapter { 
    
    private Activity context; 
    
    private static ImageView imageView; 
    
    private List<Drawable> plotsImages; 
    
    private static ViewHolder holder; 
    
    public GalleryImageAdapter(Activity context, List<Drawable> plotsImages) { 
    
    this.context = context; 
    this.plotsImages = plotsImages; 
    
    } 
    
    @Override 
    public int getCount() { 
        return plotsImages.size(); 
    } 
    
    @Override 
    public Object getItem(int position) { 
        return null; 
    } 
    
    @Override 
    public long getItemId(int position) { 
        return 0; 
    } 
    
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    
        if (convertView == null) { 
    
        holder = new ViewHolder(); 
    
        imageView = new ImageView(this.context); 
    
        imageView.setPadding(3, 3, 3, 3); 
    
        convertView = imageView; 
    
        holder.imageView = imageView; 
    
        convertView.setTag(holder); 
    
    } else { 
    
        holder = (ViewHolder) convertView.getTag(); 
    } 
    
    holder.imageView.setImageDrawable(plotsImages.get(position)); 
    
    holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
    holder.imageView.setLayoutParams(new Gallery.LayoutParams(150, 90)); 
    
    return imageView; 
    } 
    
    private static class ViewHolder { 
        ImageView imageView; 
    } 
    
    } 
    
+0

holder.imageView.setImageDrawable(plotsImages.get(position));它說「圖像視圖類型中的.setImageDrawable不適用於參數」 – Jayizzle

+0

由於您直接使用整數ID而不是直接使用資源**,而不是使用setImageDrawable使用setImageResource **。即使用** imageview.setImageResource(plotsImages.get(position)); ** –

+0

我不斷收到相同的錯誤消息。 – Jayizzle