日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 使用Adapter适配器模式实现无线轮播BannerView

發布時間:2024/4/17 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 使用Adapter适配器模式实现无线轮播BannerView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###代碼實現 自定義ViewPager

public class BannerViewPager extends ViewPager {private BannerAdapter mAdapter;public BannerViewPager(Context context) {super(context);}public BannerViewPager(Context context, AttributeSet attrs) {super(context, attrs);}public void setAdapter(BannerAdapter adapter) {this.mAdapter = adapter;setAdapter(new BannerPagerAdapter());}//ViewPager在滑動的時候會一直不斷的創建和銷毀子View 所以它不會有內存泄露的情況出現class BannerPagerAdapter extends PagerAdapter{@Overridepublic int getCount() {//為了實現無線循環ViewPager 這里設置ViewPager的最大值為Int的最大類型return Integer.MAX_VALUE;}@Overridepublic boolean isViewFromObject(View view, Object object) {//官方推薦 這么寫return view==object;}//加載viewPager的子view@Overridepublic Object instantiateItem(ViewGroup container, int position) {View itemView= mAdapter.getView(position);container.addView(itemView);return itemView;}//銷毀ViewPager的只View@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);object=null;}} }復制代碼

創建Adapter

public abstract class BannerAdapter {public abstract View getView(int position); } 復制代碼

layout布局代碼

<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><com.example.administrator.allynmvp.view.BannerViewPagerandroid:id="@+id/banner_vp"android:layout_width="match_parent"android:layout_height="150dp"></com.example.administrator.allynmvp.view.BannerViewPager><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout> 復制代碼

初始化加載顯示

public class MainActivity extends AppCompatActivity implements ViewControl {MusicDataPresenter musicDataPresenter;ListView listView;ProgressBar progressBar;TextView tvError;BannerViewPager mBannerVp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getBannerData();}public void getBannerData() {//這里通過網絡加載無效廣告輪播的圖片//初始化控件mBannerVp.setAdapter(new BannerAdapter() {@Overridepublic View getView(int position) { //這個可以是一個ImageView也可以是一個布局文件 穿一個View進去就可以 這就是適配器模式的好處ImageView imageView=new ImageView(MainActivity.this);imageView.setBackgroundResource(R.mipmap.ic_launcher);return imageView;}});} 復制代碼

此文章后續會增加更多的代碼解釋和擴展 敬請期待~~~

轉載于:https://juejin.im/post/5bdda91951882516d50b067a

總結

以上是生活随笔為你收集整理的Android 使用Adapter适配器模式实现无线轮播BannerView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。