2014-09-21 5 views
1

Désolé pour mon anglais. Il y a une mini-galerie, lorsque vous cliquez sur une image de la galerie, elle devrait (image) s'ouvrir en plein écran. App lance juste en appuyant sur l'image. Qu'est-ce que je fais mal? MainActivityPlein écran Galerie d'images Android

public class MainAcTwo extends Activity { 

@SuppressWarnings("deprecation") 
Gallery gallery; 
ImageView bigimage; 

@SuppressWarnings("deprecation") 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.two); 
    gallery=(Gallery) findViewById(R.id.gallery); 
    gallery.setAdapter(new ImageAdapter(this)); 

    gallery.setOnItemClickListener(new OnItemClickListener() { 
     @TargetApi(Build.VERSION_CODES.HONEYCOMB) @SuppressLint("NewApi") public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 

      long imageId = ImageAdapter.ThumbsIds[position]; 

      Intent fullScreenIntent = new Intent(v.getContext(), FullScreenImage.class); 
      fullScreenIntent.putExtra(MainAcTwo.class.getName(), imageId); 

      MainAcTwo.this.startActivity(fullScreenIntent); 

     } 
    }); 
} 

}

ImageAdapter

public class ImageAdapter extends BaseAdapter implements SpinnerAdapter { 

private Context context; 

public ImageAdapter(Context context) { 
    // TODO Auto-generated constructor stub 
    this.context = context; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return ThumbsIds.length; 
} 

@Override 
public Object getItem(int arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int arg0) { 
    // TODO Auto-generated method stub 
    return 0; 
} 

@Override 
public View getView(final int position, View convertView, ViewGroup arg2) { 
    // TODO Auto-generated method stub 
    ImageView imageView=null; 
    if(convertView == null) { 
     imageView = new ImageView(context); 
     imageView.setLayoutParams(new Gallery.LayoutParams(215, 200)); 
     imageView.setPadding(8, 8, 8, 8); 


    }else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(ThumbsIds[position]); 

    return imageView; 
} 

public static Integer[] ThumbsIds={ 
    R.drawable.abs_icla, 
    R.drawable.abs_dog, 
    R.drawable.abs_flow, 
    R.drawable.abs_neb, 
    R.drawable.abs_rad 
}; 

}

FullScreenImage

FullScreenImage public class étend Activité {

protected void onCreate(Bundle savedInstanceState) { 
     setContentView(R.layout.full_image); 
     Intent intent = getIntent(); 
     long imageId = (Long) intent.getExtras().get(FullScreenImage.class.getName()); 

     ImageView imageView = (ImageView) findViewById(R.id.fullImage); 

     imageView.setLayoutParams(new ViewGroup.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT)); 

     imageView.setImageResource((int) imageId); 
     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
} 

}

+1

Quelle est l'erreur, il est de lancer et dans quelle ligne? – mobilepotato7

+0

Lorsque je clique sur l'image, écrit: "Malheureusement, myProgect a arrêté" En LogCat: FATAL EXCEPTION: principale java.lang.ClassCastException: android.view.ViewGroup $ LayoutParams ne peut pas être jeté à android.widget.LinearLayout $ LayoutParams atandroid.widget.LinearLayout.measureVertical (LinearLayout.java:655) à android.widget.LinearLayout.onMeasure (LinearLayout.java:574) à android.view.View.measure \t à android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:4814) \t à android.widget.FrameLayout.onMeasure (FrameLayout.java:310) \t à android.view.View.measure (View.java:15172) ________________ – nesalexy

+1

Essayez de nettoyer le projet et le bâtiment. Peut-être que c'est un peu confus dans le fichier xml parce que je ne vois pas de disposition linéaire, seulement un ImageView – mobilepotato7

Répondre

2

propre votre projet si elle ne fonctionne pas

imageView.setLayoutParams(new ViewGroup.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT)); 


change it to 

imageView.setLayoutParams(new LinearLayout.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT)); 
+0

merci! Tout a fonctionné après le remplacement de la ligne! – nesalexy

+1

bienvenue .. tout le meilleur :) –