我创建了一个带有viewpager适配器的viewpager适配器,该适配器可显示和滑动活动中的图像,并使用Picasso库从URL加载该图像。现在的问题是,我不知道如何在viewpager中的图像中实现缩放功能,因为我正在用Java代码而不是xml布局文件实现imageView。建议您在回答之前阅读以下代码段:
ViewPagerAdapter.java
public class ViewPagerAdapter extends PagerAdapter {
private Context context;
private String[] imageUrls;
ViewPagerAdapter(Context context, String[] imageUrls){
this.context = context;
this.imageUrls = imageUrls;
}
@Override
public int getCount() {
return imageUrls.length;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
//Creating new imageview directly in java instead of creating in xml
ImageView imageView = new ImageView(context);
Picasso.get()
.load(imageUrls[position])
.fit()
.centerCrop()
.into(imageView);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
YoutubeEarn.java(您可以将其假定为MainActivity.java)
public class YoutubeEarn extends AppCompatActivity {
private String[] imageUrls = new String[]{
"https://lh3.googleusercontent.com/yuvfjDzjgMZxmMH9zX1ehPectTSMUObyNqVyD9lu0TkGWzjyXkwMX9IbdDhYemrpowCtrLjAVun95kdPyaAZsuNo9vvvoxwVpbiHRAoyZF95XSz_UvbtO0_hsmnFLtVHGRMNRfGTwShGPZNaZb3OuOUk5MTOtWKNlxPJE2FIBEyyUaxf4nyQDz9xtJ1vVaAoVZlg53aji8PiU6vmYq7l2xrBEksgucELkMRLOp-VVEQW2KuV6bprO6TxcgDh-YptSYYi382jXKKCLPWzRjnMTk5oO3WeBt79y-YCSI2mxCIoS6MSCYAGrbKlfmPdY3mNBTyUD8lIM5gBcNm0kLCioGU4HMmsZfWMR9UGhNm3gS-V3UCRNRClDbhx28YTQz7igDDsyTgRifCBz6CsdM8AwkntgL-CrrAktMOxMrD6sWgKYQKZsC5tW1YBTV0vDmzTcHVCzd9Jcog_3UqXCfo2dP-Xhe6Pwjj5zMsdiObuol3KjTUvtXll11EwRwY_9yxAqP0-LuULwbcDCiWvC9-c5ViP69s9NUcxKKRyE_E4HyNS2ZRODgeB4zUmDPhhG1FsLUAxnCpeoJ0F1S9_axvyo0zZYVlEuOmpigCafI0=w512-h662-no",
"https://lh3.googleusercontent.com/31NR-MAQ5060kjkVUik24zvlJNmIiGteHWvX4XiuUiVYspPH6F4krBBfnXyVYa5b-2QNrDp6okQ8MBtY_EalnDwt7h0xk30QLVc31RsjmBpSOLgfnc_F7uEqCNUmohqcwDScgz8uOCjsHw4hReYyvUNIJ-FrhAXcjITiOolbU-E6dJOjtPl0he65dpL4S9Xz7N-UhVK34A1zjedVkp0WtqO1lJpimdu4yQKyb8SwXMJBzLD68QUQd9K0h5u9wDqsLx3agqQokzEmzZCsox8QkbXIVWbUaj2N8Vnn_LHHjQVWadVkvL0Fy5jStSU9YYrm2-ECCO44LCMHSe0yMYXELWe1ZMrHnq6YoNguiLya23Gm6KnosVPnwgX63fi4DuoD-rSEYYBHuVIX4OKqJ3mSLuX6fwvon3-yHBIbivTMMb82FTer24YltEuiPlsnlP8OswmGR9RYXns1wJax_9FLv_2p1TQwVWUllTVHiudhsiYXx9-bL2y4Wm-p6c3YrT4T84yUO-a5Psp9vnffMjSsbv79EcRRPvHvO2zK7dcF_rXlFTyZWtIIa1rPf5OwzMtFg7NV8IdvUM3g66fP3Lxn2jUFkVUC3DDX3bHuXNs=w151-h226-no",
"https://lh3.googleusercontent.com/z-asY2L3uOdsU4zehQeZZ01FiUjnvWvtDqsPRfAVF1stSSse_7T2sxOQKCp73D97QNDW19ZuX9OADQDlwc1jbsqa5zgI_1H5-fbKjTwr-DIw1vFd28UmvDL2wWx-H83AeOtar4u1A1otATLdMht-csxVxC0JjuyvknF8WklnDagdg-1rni6x_39gZqpnKZW_LAJWzDishHFImXYa7wkTJKN8ozaNcFpWgC5sdAjkUGbSxsOeMd5Z9FatOz8DuFK61gXv156fyS0Kjv_lCAgkvuhOPHyuuLY1fSFd5l3pWmO2c77y11CUh3G17KW_8p5ls7eo2-bR7fHNXch6TJv8c6Oc49EMIA4JNHy8q-THwHVX0rfHrLdtyrC1ahk0IHgBWc7q1kWAHHWVM4urEVzRS-ZYiT8RDOUAFP8bFxrGZYM6KswQiiRhOr6yXHAr6GEFlnEpV78fApPkSaQ8o6NF7JbySKTI6JjjKYA4_DnJEIHSM0_H9c4P_-wdRzO7XzKc_LTUCX_eA8S1gINYSV7NZqZtIllaYgU53rJTSKGaPOKdFQKkpIIUFTgbmt-B-mmaB-SNVeMtvaHUmjUWp6Kpk9nqX4ftGXWV2VTV5zg=w745-h662-no",
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_youtube_earn);
ViewPager viewPager = findViewById(R.id.view_pager);
ViewPagerAdapter adapter = new ViewPagerAdapter(this, imageUrls);
viewPager.setAdapter(adapter);
}
}
activity_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_pager"
tools:context=".YoutubeEarn">
</android.support.v4.view.ViewPager>