Android 使用Adapter适配器模式实现无线轮播BannerView
生活随笔
收集整理的這篇文章主要介紹了
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ActiveMQ结合Spring收发消息
- 下一篇: Go语言入门篇-使用Beego构建完整w