2013-05-13 8 views
0

Salut, je suis très nouveau à la programmation. Je me bats vraiment, avec ma connaissance limitée, pour obtenir la vue horizontale glisser dans mon projet Android. J'ai téléchargé un tutoriel ViewPager et mis en œuvre le code dans mon projet et cela fonctionne très bien, mais il montre seulement quelques numéros de texte (1,2,3,4, etc ...). J'aimerais pouvoir visualiser horizontalement des images de balayage (avec peut-être du texte) et pas seulement des chiffres. Je suis vraiment frustré, j'ai essayé de mélanger et de faire correspondre le code d'autres didacticiels ViewPager, mais il se bloque toujours et génère des erreurs que je ne comprends pas. Y a-t-il des changements simples que je pourrais apporter à ce code pour pouvoir balayer horizontalement des images et du texte? Merci.Débutant essayant d'ajouter des images à Android ViewPager et Fragments

Activité principale

package com.project.viewswipingtest; 

import java.util.ArrayList; 
import java.util.List; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 

public class Page5 extends FragmentActivity { 
MyPageAdapter pageAdapter; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pg5); 

    List<Fragment> fragments = getFragments(); 

    pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments); 

    ViewPager pager = (ViewPager)findViewById(R.id.viewpager); 
    pager.setAdapter(pageAdapter); 

} 

private List<Fragment> getFragments(){ 
    List<Fragment> fList = new ArrayList<Fragment>(); 

    fList.add(MyFragment.newInstance("Fragment 1")); 
    fList.add(MyFragment.newInstance("Fragment 2")); 
    fList.add(MyFragment.newInstance("Fragment 3")); 
    fList.add(MyFragment.newInstance("Fragment 4")); 

    return fList; 
} 

private class MyPageAdapter extends FragmentPagerAdapter { 
    private List<Fragment> fragments; 

    public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) { 
     super(fm); 
     this.fragments = fragments; 
    } 
    @Override 
    public Fragment getItem(int position) { 
     return this.fragments.get(position); 
    } 

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

Fragment classe

package com.project.viewswipingtest; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

public class MyFragment extends Fragment { 
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE"; 

public static final MyFragment newInstance(String message) 
{ 
    MyFragment f = new MyFragment(); 
    Bundle bdl = new Bundle(1); 
    bdl.putString(EXTRA_MESSAGE, message); 
    f.setArguments(bdl); 
    return f; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    String message = getArguments().getString(EXTRA_MESSAGE); 
    View v = inflater.inflate(R.layout.myfragment_layout, container, false); 
    TextView messageTextView = (TextView)v.findViewById(R.id.textView); 
    messageTextView.setText(message); 

    return v; 
} 

} 

ViewPager XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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.support.v4.view.ViewPager 
android:id="@+id/viewpager" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" /> 

</RelativeLayout> 

Fragment XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

</RelativeLayout> 

Répondre

0

Dans le Fragment XML, ajoutez un <ImageView>. Ensuite, dans le Fragment Class.onCreateView(), vous pouvez charger n'importe quel Bitmap dans celui-ci.

+0

Merci Peter. Cela semble assez simple ... Je vais essayer. – user2085187

+0

Comment charger un bitmap dans le Fragment Class.onCreateView()? – user2085187

+0

'imageView.setImageBitmap (bitmap)', et vous pouvez obtenir le 'Bitmap' du réseau, par exemple. Ou si c'est statique, alors donnez-le dans le 'XML' (avec' android: src = ', créez des XML différents pour chaque page). –

Questions connexes