Glisser des images (pas mises) avec viewpager
Ce que mon code n':
Voici mon code pour viewpager qui glisse entre les layouts xml (nommé left.xml, right.xml et center.xml).
Ce que je veux faire
Je veux glisser entre les images (stockés dans le dossier drawable). Lorsque je remplace R.layout.xml avec R. drawable.image, mon application se bloque vers le bas. Quelqu'un peut-il m'aider à comprendre?
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 3;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.left;
break;
case 1:
resId = R.layout.center;
break;
case 2:
resId = R.layout.right;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
}
OriginalL'auteur Adnan Zahid | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez la même mise en œuvre et simplement ajouter
R.drawable.XXX
au lieu deR.layout.YYY
alors le problème est là. Vous utilisezLayoutInflater
pour gonflerImageView
s, la mise en page inflater que par lui-même, il se gonfle d'un ensemble de mise en page dans un seulView
.Au lieu de cela, essayez de créer
ImageView
objets à l'aide de code, puis dans lereturn
retourner le nouvellement crééImageView
. Un exemple de code serait:Si vous êtes juste en utilisant une quantité spécifique des images ou des pages que vous devriez envisager de les ajouter dans le fichier xml qui contient la
ViewPager
plutôt que de créer dynamiquement leViewPager
.J'ai oublié 1 ligne de code:
((ViewPager) collection).addView(img, 0);
J'étais sur le point de dire que, cheers!
Une autre question désolé, je n'ai pas à écrire R. drawable.img pour chaque image? Parce que je dois ajouter BEAUCOUP d'images!
U les Deux m'a sauvé.. Adnan Zahid
OriginalL'auteur 10s
Je pense qu'une option serait d'insérer chaque image dans sa propre mise en page avec un ImageView puis gonfler à la mise en page que l'image est plutôt que l'image elle-même.
OriginalL'auteur hellowill89