作者刚刚接触android小白一枚,这是本人在CSDN上写的第一篇博客。。出于写博客的目的:一也是最重要的想让像我这样的android初学者少走点弯路,本以为这个功能实现起来挺简单的,但是项目要求在fragment上实现,这两天百度了n条教程都没有比较容易搞懂的,各种下demo各种改最后还是失败。。。。最后终于在一篇没有图示的博客上找到了方法原作者的链接在这,二是记录下自己的开发经验,三是体验下写博客的感觉。。。。;而且内容不是我原创的,只不过是他人博客的详细说明原作者的博客http://ww  w.cnbl ogs.com/yoyohong/p/5688913.ht ml;废话不多说上方法:

要实现这个轮播其实真的挺简单,要把这个效果实现到你的项目上,代码只需要复制两段,首先是布局,在layout文件夹新建一个xml,就叫buju.xml好了然后复制

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" ><FrameLayout
android:layout_width="match_parent"
android:layout_height="300dip" ><android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent" /><LinearLayout
android:layout_width="match_parent"
android:layout_height="35dip"
android:layout_gravity="bottom"
android:background="#33000000"
android:gravity="center"
android:orientation="vertical" ><TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="图片标题"
android:textColor="@android:color/white" /><LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dip"
android:orientation="horizontal" ><View
android:id="@+id/dot_0"
android:layout_width="5dip"
android:layout_height="5dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@drawable/dot_yes"/><View
android:id="@+id/dot_1"
android:layout_width="5dip"
android:layout_height="5dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@drawable/dot_no"/>
<View
android:id="@+id/dot_2"
android:layout_width="5dip"
android:layout_height="5dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@drawable/dot_no"/>
<View
android:id="@+id/dot_3"
android:layout_width="5dip"
android:layout_height="5dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@drawable/dot_no"/>
<View
android:id="@+id/dot_4"
android:layout_width="5dip"
android:layout_height="5dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@drawable/dot_no"/></LinearLayout>
</LinearLayout>
</FrameLayout></RelativeLayout>

这里dot_no和dot_yes就是图片中暗小点和亮小点,自己百度两个小点的图片吧;顺便把广告图也找了,全部复制到drawable文件夹;之后是fragment,新建一个fragment,复制粘贴

package com***************;import android.app.Fragment;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;import com.example.R;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;/*** Created by Administrator on 2016/7/13.*/
public class HomeFragment extends Fragment {private View mView;private ViewPager mViewPaper;private List<ImageView> images;private List<View> dots;private int currentItem;//记录上一次点的位置private int oldPosition = 0;//存放图片的idprivate int[] imageIds = new int[]{R.drawable.home_bg,R.drawable.home_bg,R.drawable.home_bg,R.drawable.home_bg,R.drawable.home_bg};//存放图片的标题private String[] titles = new String[]{"轮播1","轮播2","轮播3","轮播4","轮播5"};private TextView title;private ViewPagerAdapter adapter;private ScheduledExecutorService scheduledExecutorService;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {mView=inflater.inflate(R.layout.fragment_home_layout, null);setView();return mView;}private void setView(){mViewPaper = (ViewPager)mView.findViewById(R.id.vp);//显示的图片images = new ArrayList<ImageView>();for(int i = 0; i < imageIds.length; i++){ImageView imageView = new ImageView(getActivity());imageView.setBackgroundResource(imageIds[i]);images.add(imageView);}//显示的小点dots = new ArrayList<View>();dots.add(mView.findViewById(R.id.dot_0));dots.add(mView.findViewById(R.id.dot_1));dots.add(mView.findViewById(R.id.dot_2));dots.add(mView.findViewById(R.id.dot_3));dots.add(mView.findViewById(R.id.dot_4));title = (TextView) mView.findViewById(R.id.title);title.setText(titles[0]);adapter = new ViewPagerAdapter();mViewPaper.setAdapter(adapter);mViewPaper.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageSelected(int position) {title.setText(titles[position]);dots.get(position).setBackgroundResource(R.drawable.dot_yes);dots.get(oldPosition).setBackgroundResource(R.drawable.dot_no);oldPosition = position;currentItem = position;}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});}/*定义的适配器*/public class ViewPagerAdapter extends PagerAdapter{@Overridepublic int getCount() {return images.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic void destroyItem(ViewGroup view, int position, Object object) {// TODO Auto-generated method stub
//          super.destroyItem(container, position, object);
//          view.removeView(view.getChildAt(position));
//          view.removeViewAt(position);view.removeView(images.get(position));}@Overridepublic Object instantiateItem(ViewGroup view, int position) {// TODO Auto-generated method stubview.addView(images.get(position));return images.get(position);}}/*** 利用线程池定时执行动画轮播*/@Overridepublic void onStart() {// TODO Auto-generated method stubsuper.onStart();scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();scheduledExecutorService.scheduleWithFixedDelay(new ViewPageTask(),2,2,TimeUnit.SECONDS);}/*** 图片轮播任务* @author liuyazhuang**/private class ViewPageTask implements Runnable{@Overridepublic void run() {currentItem = (currentItem + 1) % imageIds.length;mHandler.sendEmptyMessage(0);}}/*** 接收子线程传递过来的数据*/private Handler mHandler = new Handler(){public void handleMessage(android.os.Message msg) {mViewPaper.setCurrentItem(currentItem);};};@Overridepublic void onStop() {// TODO Auto-generated method stubsuper.onStop();if(scheduledExecutorService != null){scheduledExecutorService.shutdown();scheduledExecutorService = null;}}
}

报错肯定有,一个个,慢慢的把错误都改过来,首先是包名.R,之后是你导入的图片的名字换一下,还有布局用的名字。。。编译通过,这样就ok了。看看效果, 还是可以的吧。。

Android fragment中广告图片轮播效果的实现(附图 )相关推荐

  1. android 自适应图片轮播,Android使用Recyclerview实现图片轮播效果的方法

    Android使用Recyclerview实现图片轮播效果的方法 发布时间:2020-06-23 15:47:58 来源:亿速云 阅读:113 作者:清晨 这篇文章将为大家详细讲解有关Android使 ...

  2. android 自动播放 幻灯片,Android自动播放Banner图片轮播效果

    本文实例为大家分享了Android自动播放Banner图片轮播的具体代码,供大家参考,具体内容如下 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id=&qu ...

  3. Android使用viewpager实现图片轮播效果

    自定义View实现图片轮播,实现了图片自动轮播,手动滑动,轮播标题,以及点击事件. 里面有很多注释 一.文件布局 二.代码 ImageBannerViewGroup类 /*** Created by ...

  4. Android UI 实现广告 Banner 轮播效果

    编写acitivity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android ...

  5. android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...

    Android自动播放Banner图片轮播效果 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id="@+id/banner" andro ...

  6. axure 动态面板实现图片轮播效果(淘宝)

    淘宝中经常可以看到店铺中的图片轮播效果,本经验将通过axure7.0实现 工具/原料 axure7.0 方法/步骤 下载需要轮播的图片 将图片引入至axure中,将引入的第一张图片转为动态面板 将动态 ...

  7. 用C#做图片轮播效果

    用C#做图片轮播效果 老帅    在C#中做图片轮播效果,不借助第三方控件,也是可以实现的.使用PictureBox作为图片展示容器就可以.但是图片列表放在什么地方,如何加载,需要考虑一下!    1 ...

  8. Android App图片轮播效果的组件化

    简介 一个通用的图片轮播效果的通用组件,方便开发者快速集成. 初学者,其实应该实现一个自定义控件的,改天有空,在学习下吧,学习能力一般,以前也没写过java,这个组件都写了好久,惭愧啊. 背景 笔者参 ...

  9. Android广告图片轮播,支持无限循环和设置轮播样式、切换时间等

    Android-----------广告图片轮播控件 Banner广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式.动画.轮播和切换时间.位置.图片加载框架等! 很多Android AP ...

最新文章

  1. 【Linux系统编程应用】Linux音频编程接口
  2. “能用”距离“好用”有多远?
  3. Java开发神器Lombok使用详解
  4. linux远程执行迷路,linux操作系统基础
  5. python操作excel常用的方法
  6. 【Java】基于栈的算术表达式求值
  7. 英特尔杀入游戏显卡市场:支持光追和AI超分辨率,挑战AMD英伟达
  8. formSelects使用
  9. 今天被BSE指摘了2个问题,感觉很典型
  10. HDOJ 1160 FatMouse's Speed
  11. Java中Lambda表达式
  12. eclipse不识别java,在Eclipse中运行的Maven项目存在问题,无法识别为Java项目
  13. 3.1 广义线性模型 And XGBoost
  14. C++数据库编程 ODBC查询数据
  15. 手脱FSG压缩壳及问题处理
  16. 搜索引擎优化的优势及发展问题
  17. 图解RAM结构与原理,系统内存的Channel、Chip与Bank
  18. 虚拟机的三种网络模式
  19. 软件使用小技巧-Linux疑难杂症
  20. 微信小程序模仿微信主页及页面跳转详解

热门文章

  1. 小龙女,杨过跳崖真相
  2. 关于travis scott的网名_文案| 关于【太阳】的惊艳句子
  3. 苹果手机7P ios14 nfc怎么复制门禁卡
  4. 本地服务(local Service)的实现
  5. 计蒜客 联想专卖店大促销
  6. 【SAP ABAP学习资料】(财务相关)BTE增强查找,新增
  7. scylladb源码安装过程
  8. 乒乓球比赛赛程_2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道
  9. python坦克大战游戏_python实现简单坦克大战
  10. 写在2020年的初秋