2017-09-12 2 views
0

アダプターとアクティビティーでスライダーを作成すると、このコードはアンドロイド4.4 kitkatでもうまく動作しますが、アンドロイド6はクラッシュしているか、画像と表示されません.... appcompactの問題? この問題を解決する方法がわかりません。 アダプタ私のビューページャーはアンドロイドで性能が悪い6

public class ScreenshootsAdapter extends PagerAdapter { 

    private int[] image_resources={ 
      R.drawable.walkthrough1, 
      R.drawable.walkthrough2, 
      R.drawable.walkthrough3, 
      R.drawable.walkthrough4, 
      R.drawable.walkthrough5, 
      R.drawable.walkthrough6, 

    }; 

    private Context ctx; 

    private LayoutInflater layoutInflater; 

    public ScreenshootsAdapter(Context ctx){ 
     this.ctx=ctx; 
    } 


    @Override 
    public int getCount() { 
     return image_resources.length; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return (view==(LinearLayout) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position){ 
     layoutInflater =(LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View item_view= layoutInflater.inflate(R.layout.screenshoots,container,false); 

     ImageView imageView=(ImageView) item_view.findViewById(R.id.slider_image); 

     imageView.setImageResource(image_resources[position]); 

     container.addView(item_view); 

     return item_view; 
    } 

    @Override 
    public void destroyItem(ViewGroup container,int position,Object object) 
    { 
     container.removeView((LinearLayout) object); 
    } 
} 

活性

public class AppTutorialActivity extends AppCompatActivity { 

    ViewPager viewPager; 
    ScreenshootsAdapter adapter; 
    Typeface typeface; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_app_tutorial); 


     viewPager=(ViewPager) findViewById(R.id.screenshoot_slider); 

     adapter=new ScreenshootsAdapter(this); 

     viewPager.setAdapter(adapter); 

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); 

     tabLayout.setupWithViewPager(viewPager, true); 

     //Button btnBack=(Button)findViewById(R.id.btn_back); 
     TextView textBack=(TextView) findViewById(R.id.text_back); 

     typeface=Typeface.createFromAsset(getAssets(),"font/IRANSansMobile.ttf"); 

     textBack.setTypeface(typeface); 

     textBack.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       finish(); 
      } 
     }); 
     //btnBack.setTypeface(typeface); 
    } 
} 
+0

エラーのスタックトレースを転記することはできますか –

答えて

0

するAppTutorialActivity活性の

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <array name="list"> 
     <item>@drawable/walkthrough1</item> 
     <item>@drawable/walkthrough2</item> 
     <item>@drawable/walkthrough3</item> 
     <item>@drawable/walkthrough4</item> 
     <item>@drawable/walkthrough5</item> 
     <item>@drawable/walkthrough6</item> 
    </array> 
</resources> 

そして文字列のフォルダ内の画像のアレイを作成するアレイを初期化

TypedArray list = getResources().obtainTypedArray(R.array.list); 

はTpedArrayリストから

imageView.setImageResource(list.getResourceId(position, -1)); 

画像も簡単にロードすることができますグライドやピカソなどの画像の読み込みライブラリを使用しようとScreenshootsAdapter

public ScreenshootsAdapter(Context ctx,TypedArray list){ 
    this.ctx=ctx; 
    mList=list 
} 

ロードに配列を渡します。

関連する問題