2014-03-01 3 views
0

저는 gridview에 표시 할 이미지가 거의 없습니다. 내가 원하는 것은 이미지를 클릭하면 전체 화면으로 표시되어야한다는 것입니다. viewpager에 슬라이딩 기능을 추가했습니다. 내가 가지고있는 문제는 이미지를 클릭하면 첫 번째 이미지가 표시됩니다 (그 이미지가 표시되지 않음).클릭 한 이미지를 표시 할 수 없습니다.

그는이 슬라이딩 기능을 전체 화면에 표시 할 내 활동 내 주요 활동

public class Ppdtsample extends Activity { 
GridView grid; 

static int[] imageId = { R.drawable.ppdt1, R.drawable.ppdt2, 
     R.drawable.ppdt3, R.drawable.ppdt4, R.drawable.ppdt5, 
     R.drawable.ppdt6, R.drawable.ppdt7, }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.ppdtsamples); 

     ImageAdapter adapter = new ImageAdapter(Ppdtsample.this, imageId); 
     grid=(GridView)findViewById(R.id.grid_view); 
       grid.setAdapter(adapter); 

       grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 


        @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 
         // TODO Auto-generated method stub 
         Intent i = new Intent(getApplicationContext(), FullImageActivity.class); 
          // passing array index 
          i.putExtra("id", position); 

          startActivity(i); 
        } 
       }); 
    } 

} 

입니다 :

public class FullImageActivity extends Activity { 






@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.full_image); 

    // get intent data 
    Intent i = getIntent(); 

    // Selected image id 
    int position = i.getExtras().getInt("id"); 

    // passing array index 

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 


    viewPager.setBackgroundResource(0); 





    SlideImage adapter = new SlideImage(this); 
    viewPager.setAdapter(adapter); 


} 
} 

을하고이 viewpager

public class SlideImage extends PagerAdapter { 
Context context; 


private int[] GalImages = { R.drawable.ppdt1, R.drawable.ppdt2, 
     R.drawable.ppdt3, R.drawable.ppdt4, R.drawable.ppdt5, 
     R.drawable.ppdt6, R.drawable.ppdt7, }; 


SlideImage(Context context) { 
    this.context = context; 
} 

@Override 
public int getCount() { 
    return GalImages.length; 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == ((ImageView) object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imageView = new ImageView(context); 
    int padding = context.getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin); 
    imageView.setPadding(padding, padding, padding, padding); 
    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 


    imageView.setImageResource(GalImages[position]); 
    ((ViewPager) container).addView(imageView, 0); 
    return imageView; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    ((ViewPager) container).removeView((ImageView) object); 
} 
} 

내 클래스입니다 그것은 'p'를 전달할 수 없기 때문에 첫 번째 이미지를 표시하고 내가 클릭 한 이미지가 아닙니다. 클릭 한 이미지의 '위치'. SlideImage.class에서이 메소드의 위치를 ​​취하고있다.

Object instantiateItem(ViewGroup container, int position) 

첫 번째 위치이다. fullImageActivity.class에서이 줄의 위치로 전달하고 싶습니다.

imageView.setImageResource(GalImages[position]); 

SlideshowActivity에 있습니다.

이것은 복잡해 보이지만 FullImageActivity.class의 위치 값을 SlideImage.class로 전달하려고합니다. 나에게

답변

0

도와주세요 귀하의 Ppdtsample 내가 나를 위해 일한 당신 Ppdtsample 클래스를 수정하려고 strange.Here 같습니다

public class Ppdtsample extends Activity { 
GridView grid; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.grid_layout); 

    grid = (GridView) findViewById(R.id.grid_view); 

    // Instance of SlideImage Class 
    gridView.setAdapter(new SlideImage(this)); 

    gridView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 

      Intent i = new Intent(getApplicationContext(),FullImageActivity.class); 

      i.putExtra("id", position); 
      startActivity(i); 
     } 
    }); 
    } 
} 

그리고 잘못된 어댑터를 설정 때문에 ID를 통과 할 수없는 이유는 Ppdtsample에 있습니다. 코드는 SlideImage이어야하며 ImageAdapter이 아니어야합니다.

관련 문제