2017-09-20 139 views
1

我知道,如果我打開圖像,我可以使用默認的Android圖像瀏覽器中打開圖像,例如與new Intent(Intent.ACTION_VIEW)使用默認的Android圖片瀏覽器顯示圖片

,然後我向左/向右滑動我會看到設備上保存的其他圖像。

例如,如果我打開whatsapp圖像之一,向左/向右滑動,我會看到保存在whatsapp文件夾中的所有其他圖像。

有沒有辦法通過uri的默認安卓圖像查看器a List/Array,以防止用戶左/右滑動並查看設備上的所有圖像?

我想讓用戶左右滑動,只看到我允許他看到的圖像。

預先感謝您

回答

2

試試這個,你可以使用android.support.v4.view.ViewPager

佈局管理器,允許用戶翻轉升通過網頁的數據。您提供了一個PagerAdapter的實現來生成該視圖顯示的頁面。

<android.support.v4.view.ViewPager 
    android:id="@+id/viewPager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

</android.support.v4.view.ViewPager> 

演示代碼

ViewPager viewPager; 
ArrayList<String> imageArray; 
imageArray = new ArrayList<>(); 
viewPager = findViewById(R.id.cspl_viewPager); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
imageArray.add(R.drawable.bg); 
ImageAdapter adapter = new ImageAdapter(this, imageArray); 
viewPager.setAdapter(adapter); 

現在創建ImageAdapter這樣

public class ImageAdapter extends PagerAdapter { 

     Context context; 
     ArrayList<String> imageArray; 

     public ImageAdapter(Context context, ArrayList<String> imageArray) { 
      this.context = context; 
      this.imageArray = imageArray; 
     } 

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

     @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); 

      LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, 50); 
      imageView.setLayoutParams(layoutParams); 

      int padding = context.getResources().getDimensionPixelSize(R.dimen.font_size_10); 
      imageView.setPadding(padding, padding, padding, padding); 

//   imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 

      Glide.with(ProfileActivity.this) 
        .load(R.drawable.bg) 
        .into(imageView); 


      ((ViewPager) container).addView(imageView, 0); 

      return imageView; 

     } 

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

謝謝你:) – MDP

+0

最受歡迎@MDP –

2

最好的情況是,你可以使用viewpager與圖像陣列或者圖像列表,你可以得到向左或向右滑動的功能,沒有什麼你需要做更多的只是實現viewpager並創建一個當所謂的getItem事件適配器來獲取圖像,

+0

我明白了。我以前從未使用過viewpager。我會研究它。謝謝你 – MDP

相關問題