Как отобразить полноэкранные изображения при нажатии на PagerAdapter? - PullRequest
0 голосов
/ 22 декабря 2018

Как отобразить полноэкранные изображения при прикосновении к ViewPager?** Я использовал Glide для получения изображений из URL.

Я пытался настроить FullScreenActivity и отправил imageUrls, но я не могу запуститьActive () с помощью метода instantiateItem из ImagePagerAdapter.java.

ImagePagerAdapter.java

public class ImagePagerAdapter extends PagerAdapter {

    private Context mContext;
    private String[] imageUrls;

    public ImagePagerAdapter(Context mContext, String[] imageUrls) {
        this.mContext = mContext;
        this.imageUrls = imageUrls;
    }

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

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull final ViewGroup container, final int position) {
        final ImageView imageView = new ImageView(mContext);
        Glide.with(mContext)
                .load(imageUrls[position])
                .into(imageView);

        container.addView(imageView);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Display full screen images when touched.

            }
        });
        return imageView;
    }
}

LocalExperienceDetail.java

public class LocalExperienceDetail extends AppCompatActivity {
    private String[] imageUrls;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_local_experience_detail);

        String company_name_eng = getIntent().getExtras().getString("name_eng");
        String img1 = getIntent().getExtras().getString("img1");
        String img2 = getIntent().getExtras().getString("img2");
        String img3 = getIntent().getExtras().getString("img3");
        String img4 = getIntent().getExtras().getString("img4");
        String img5 = getIntent().getExtras().getString("img5");
        String description_activity = getIntent().getExtras().getString("activity");
        String time = getIntent().getExtras().getString("time");
        String price = getIntent().getExtras().getString("price");
        String tel = getIntent().getExtras().getString("tel");
        String car_park = getIntent().getExtras().getString("car_park");
        String address = getIntent().getExtras().getString("address");
        String website = getIntent().getExtras().getString("website");

        TextView tvCompanyNameEng = findViewById(R.id.txtCompanyName);
        TextView tvDescActivity = findViewById(R.id.txtDescActivity);
        TextView tvPrice = findViewById(R.id.txtPrice);
        TextView tvTel = findViewById(R.id.txtTel);
        TextView tvCarPark = findViewById(R.id.txtCarPark);
        TextView tvAddress = findViewById(R.id.txtAddress);
        TextView tvWebsite = findViewById(R.id.txtWebsite);
        TextView tvTime = findViewById(R.id.txtTime);
        ViewPager viewPager = findViewById(R.id.imgView);

        tvCompanyNameEng.setText(company_name_eng);
        tvDescActivity.setText(description_activity);
        tvPrice.setText(price);
        tvTel.setText(tel);
        tvCarPark.setText(car_park);
        tvAddress.setText(address);
        tvWebsite.setText(website);
        tvTime.setText(time);

        imageUrls = new String[] {
                img1,
                img2,
                img3,
                img4,
                img5
        };
        ImagePagerAdapter adapter = new ImagePagerAdapter(this, imageUrls);
        viewPager.setAdapter(adapter);
    }
}

Я ожидаю, что полноэкранные изображения могут скользить.

Дизайн

1 Ответ

0 голосов
/ 22 декабря 2018

Это возможно.Метод startActivity является членом метода контекстного класса (doc)

    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Display full screen images when touched.
            Intent intent = new Intent(); // Your intent
            mContext.startActivity(intent);

        }
    });

Если вам нужно работать с изображениями, например, галерея, Facebook разработал Fresco библиотека.Проверьте это.

...