0

Je développe une application dans laquelle j'ai un pager de vue avec deux fragments. Dans le second fragment, je veux afficher la liste des images capturées par la caméra ou sélectionnées dans la galerie une par une. Ainsi, la liste des images augmente après la sélection ou la capture de chaque image.Android Android liste d'images avec le bouton de fermeture sur chaque

Je suis capable de capturer l'image ou de sélectionner à partir de la galerie sur le clic du bouton qui est dans le fragment deux. Chaque fois que je fais cela, je sauvegarde l'image dans le stockage interne et le chemin dans la liste de tableau.

J'ai montré toutes les images de la liste de chemin du tableau dans les vues d'image défilant horizontalement avec le bouton de fermeture sur chaque image. La fonction de fermeture est également dans le fragment deux car la liste est en fragment à partir de laquelle je dois supprimer le chemin.

Donc pour cela j'ai utilisé la plus haute réponse votée sur la pile. Le lien est aussi:

https://stackoverflow.com/questions/34674576/how-to-show-images-with-horizontal-scrolling-android 

Maintenant, le besoin est: je dois montrer les points de page ou indicateur de l'élément en bas avec les images ayant le bouton de fermeture de sorte que l'utilisateur peut savoir que sur quelle image ou d'une page, il est .

Ci-dessous l'image que j'ai besoin de développer.

enter image description here

Comment faire que je ne suis pas en mesure de comprendre. Guidez-moi s'il-vous-plaît. J'ai investi beaucoup de temps là-dessus.

+0

vous devez afficher plus d'icône de menu sur ces images capturées, est-ce exact? – Karthik

+0

prévu Ui pour cela? –

+0

vérifiez ceci http://viewpagerindicator.com/ –

Répondre

0

J'ai essayé comme ceci et l'ai accompli.

Voici le fragment class:

public class DisplayImageFragment extends BaseFragment implements ViewPager.OnPageChangeListener { 

    private RadioGroup mIndicators; 
    private ViewPager mPager; 
    private List<Image> sliderItems; 
    private Bundle bundle; 

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.display_image_fragment, container, false); 
     mIndicators = (RadioGroup) getView().findViewById(R.id.page_indicator); 
     mPager = (ViewPager) getView().findViewById(R.id.viewPager); 

     return view; 
    } 

    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     mPager.setOnPageChangeListener(this); 

     this.bundle = getArguments(); 
     if (bundle != null) { 
      sliderItems = bundle.getParcelableArrayList(IMAGES_LIST); 
     } 
     setUpRadioIndicators(sliderItems); 

     // build pager adapter 
     ViewPagerAdapter adapter = (ViewPagerAdapter) mPager.getAdapter(); 

     if (adapter != null) { 
      adapter.notifyPagerAdapter(sliderItems); 
     } else { 
      adapter = new ViewPagerAdapter(getContext(), sliderItems); 
      mPager.setAdapter(adapter); 
     } 
    } 

    private void setUpRadioIndicators(List<Image> sliderItems) { 
     mIndicators.removeAllViews(); 

     for (int i = 0; i < sliderItems.size(); i++) { 
      mIndicators.addView(getIndicator(i)); 
     } 

     // default item 
     if (sliderItems.size() > 0) { 
      ((RadioButton) mIndicators.getChildAt(0)).setChecked(true); 
     } 
    } 

    private RadioButton getIndicator(int position) { 
     RadioButton radioButton = new RadioButton(getContext()); 
     radioButton.setButtonDrawable(null); 
     radioButton.setId(position); 

     int btnSize = (int) getResources().getDimension(R.dimen.radio_drawable_size); 
     RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(btnSize, btnSize); 
     params.setMargins(5, 0, 5, 0); 
     radioButton.setLayoutParams(params); 

     radioButton.setBackgroundDrawable(getResources() 
       .getDrawable(R.drawable.slider_indicator_selector)); 

     return radioButton; 
    } 

    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     ((RadioButton) mIndicators.getChildAt(position)).setChecked(true); 
    } 

    @Override 
    public void onPageSelected(int position) { 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 
    }} 

Voici le display_image_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.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <RadioGroup 
     android:id="@+id/page_indicator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="10dp" 
     android:orientation="horizontal" /> 

    </RelativeLayout> 

Voici le slider_indicator_selected.xml:

<item android:drawable="@drawable/slider_indicator_selected" 
     android:state_pressed="true"/> 

    <item android:drawable="@drawable/slider_indicator_selected" 
     android:state_checked="true"/> 

    <item android:drawable="@drawable/slider_indicator_selected" 
     android:state_focused="true" /> 

    <item android:drawable="@drawable/slider_indicator_unselected" /> 

</selector> 
+0

J'ai demandé une vue de recyclage pas pour le téléavertisseur. –

0

J'ai mis en démo qui peut vous aider. vous pouvez parcourir les liens suivants. Demo