android - 如何在android中从horizo​​ntalscrollview将图像设置到viewpager中

标签 android android-viewpager horizontalscrollview

我正在尝试将图像从horizo​​ntalscrollview设置到viewpager中。

我无法获取要在 setcurrentItem 方法中使用的水平 ScrollView 的 id。

我已经尝试了很多事情,但我做不到。

这是 MainActivity 类

public class MainActivity extends AppCompatActivity {

    int toplamSayfa = 5;
    private View btnNext, btnPrev;
    HorizontalScrollView hs;
    ImageView imageView = null;

    private Integer images[] = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e};

    ViewPager viewPager;

    LinearLayout myGallery;


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

        CustomPagerAdapter adapter = new CustomPagerAdapter(this, toplamSayfa);
        myGallery = (LinearLayout) findViewById(R.id.container);
        hs = (HorizontalScrollView) findViewById(R.id.scrollview);
        viewPager = (ViewPager) findViewById(R.id.view_pager);
        btnNext = findViewById(R.id.next);
        btnPrev = findViewById(R.id.prev);

        viewPager.setAdapter(adapter);
        viewPager.setCurrentItem(0);

        btnPrev.setOnClickListener(onClickListener(0));
        btnNext.setOnClickListener(onClickListener(1));

        addImagesToThegallery();
    }

    private void addImagesToThegallery() {

        final LinearLayout imageGallery = (LinearLayout) findViewById(R.id.container);

        for ( Integer image : images) {

            imageGallery.addView(getImageView(image));


    }

}

    private View getImageView(final Integer image) {
        imageView = new ImageView(getApplicationContext());
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        lp.setMargins(0, 0, 10, 0);
        imageView.setLayoutParams(lp);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

             //the method where i am stuck 

                 viewPager.setCurrentItem();

            }
        });



        imageView.setImageResource(image);

        return imageView;
    }


    private View.OnClickListener onClickListener(final int i) {
        return new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (i > 0) {

                    if (viewPager.getCurrentItem() < viewPager.getAdapter().getCount() - 1) {
                        viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
                    }
                } else {

                    if (viewPager.getCurrentItem() > 0) {
                        viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
                    }
                }
            }
        };
    }
} 

最佳答案

更新 addImagesToThegallery 方法以在将图像从 images 数组添加到图库时保留图像的索引:

private void addImagesToThegallery() {
  final LinearLayout imageGallery = (LinearLayout) findViewById(R.id.container);

  int i = 0;
  for ( Integer image : images) {
    imageGallery.addView(getImageView(image,i));
    i += 1;
  }
}

并在此处使用索引:

private View getImageView(final Integer image, int index) {
        imageView = new ImageView(getApplicationContext());
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        lp.setMargins(0, 0, 10, 0);
        imageView.setLayoutParams(lp);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

             //use the index here

                 viewPager.setCurrentItem(index);

            }
        });



        imageView.setImageResource(image);

        return imageView;
    }

关于android - 如何在android中从horizo​​ntalscrollview将图像设置到viewpager中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38304141/

相关文章:

java - onSwipe 事件未在 ViewPager 内触发

android - notifyDataSetChanged() 强制在 FragmentStatePagerAdapter 中向上滚动

android - 在 Horizo​​ntalScrollView 中检测 throw 结束?

android - Horizo​​ntalScrollView 在 RTL 模式下不向左滚动

android - 如何为上下文菜单设置标题?

java - 膨胀 android.support.v7.widget.CardView 抛出错误

java - 从 URL 获取相关图像和摘要

android - java.lang.OutOfMemoryError : [memory exhausted] 错误

Android:清除动画后如何重新启动动画

ios - 向水平分页UIScrollView添加图片