android 图片轮播翻页,Android新手开发之旅-ConvenientBanner实现图片轮播

[Java] 纯文本查看 复制代码package com.company.helloworld.firstapplication;

import android.content.Context;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.ImageView;

import android.widget.Toast;

import com.bigkoo.convenientbanner.ConvenientBanner;

import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;

import com.bigkoo.convenientbanner.holder.Holder;

import com.bigkoo.convenientbanner.listener.OnItemClickListener;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

private List list;

private ConvenientBanner banner;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

}

private void initView() {

list = new ArrayList<>();

list.add(R.drawable.img1);

list.add(R.drawable.img2);

list.add(R.drawable.img3);

banner = (ConvenientBanner) findViewById(R.id.banner);

//自定义你的Holder,实现更多复杂的界面,不一定是图片翻页,其他任何控件翻页亦可。

banner.setPages(

new CBViewHolderCreator() {

@Override

public LocalImageHolderView createHolder() {

return new LocalImageHolderView();

}

}, list)

.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL)

//设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设

.setPageIndicator(new int[]{R.drawable.d1, R.drawable.d2})

//设置指示器的方向

.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL)

//设置不能手动影响

// .setManualPageable(false);

;

banner.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(int position) {

Toast.makeText(MainActivity.this, "你点击了第" + (position + 1) + "张", Toast.LENGTH_SHORT).show();

}

});

}

public class LocalImageHolderView implements Holder {

private ImageView imageView;

@Override

public View createView(Context context) {

imageView = new ImageView(context);

imageView.setScaleType(ImageView.ScaleType.FIT_XY);

return imageView;

}

@Override

public void UpdateUI(Context context, int position, Integer data) {

imageView.setImageResource(data);

}

}

@Override

protected void onResume() {

super.onResume();

//设置间隔时间

banner.startTurning(3000);

}

@Override

protected void onPause() {

super.onPause();

//停止播放

banner.stopTurning();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用 Android ViewPager 实现图片轮播的代码: 1. 布局文件: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <com.google.android.material.tabs.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> ``` 2. Activity 代码: ``` public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private TabLayout tabLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = findViewById(R.id.view_pager); tabLayout = findViewById(R.id.tab_layout); // 初始化 ViewPager 和 TabLayout initViewPager(); } private void initViewPager() { // 准备数据 List<String> titles = Arrays.asList("标题1", "标题2", "标题3"); List<Fragment> fragments = new ArrayList<>(); for (int i = 0; i < titles.size(); i++) { fragments.add(ImageFragment.newInstance(i)); } // 创建 Adapter FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public int getCount() { return fragments.size(); } @NonNull @Override public Fragment getItem(int position) { return fragments.get(position); } @Nullable @Override public CharSequence getPageTitle(int position) { return titles.get(position); } }; // 设置 Adapter viewPager.setAdapter(adapter); tabLayout.setupWithViewPager(viewPager, true); } } ``` 3. 图片 Fragment 代码: ``` public class ImageFragment extends Fragment { private static final String ARG_POSITION = "position"; private
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值