自定义控件轮播图,很好用的demo直接用就行,

匿名 (未验证) 提交于 2019-12-03 00:32:02

1.获取网络地址的轮播图片。

 

上面这是一个好用的类,实现轮播图,不过这是加载网络上的图片,不能加载本地的,下面我会提供一个本地加载的。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent" android:layout_height="match_parent">       <android.support.v4.view.ViewPager     android:id="@+id/imagePager"     android:layout_width="wrap_content"     android:layout_height="wrap_content" />          <LinearLayout     android:orientation="horizontal"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:id="@+id/dotsImg"     android:gravity="center_horizontal"     android:layout_gravity="bottom|center_horizontal">          </LinearLayout>   </FrameLayout>
 


这是布局文件。


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:background="@color/balack_thin"     android:paddingBottom="10dp">      <com.imobi.callblocker.util.BannerImg         android:layout_width="match_parent"         android:layout_height="200dp"         android:id="@+id/mainBanner"></com.test.controls.BannerImg>  </LinearLayout>
 

上面是具体的应用。

@Override public void onCreated(@Nullable Bundle savedInstanceState) {      BannerImg bannerImg=(BannerImg)findViewById(R.id.mainBanner);     List<String> imgs=new ArrayList<String>();     imgs.add(0,"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529508272189&di=0ddf122b1e41f10164d41553cafba0e9&imgtype=0&src=http%3A%2F%2Fimg.duoziwang.com%2F2016%2F12%2F18%2F015634128329.jpg");     imgs.add(1,"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529508291437&di=8232c28ca25526c2b57d8ac797cd62b9&imgtype=jpg&src=http%3A%2F%2Fimg2.imgtn.bdimg.com%2Fit%2Fu%3D2002181187%2C439438033%26fm%3D214%26gp%3D0.jpg");      bannerImg.setImageUris(imgs);

上面是在你的具体用大的地方去输入你的资源文件。这个只能用于网络加载图片,具体是使用ImageLoder去解析网络地址。

具体如下:

DisplayImageOptions options = new DisplayImageOptions.Builder()         .showImageForEmptyUri(R.mipmap.pic_one)         .showImageOnFail(R.mipmap.pic_two)         .showImageOnLoading(R.mipmap.pic_three)         .resetViewBeforeLoading(true)         .cacheOnDisk(true)         .imageScaleType(ImageScaleType.EXACTLY)         .bitmapConfig(Bitmap.Config.RGB_565)         .considerExifParams(true)         .displayer(new FadeInBitmapDisplayer(300)).build();

我相信你跟家具名字就能知道其中的意思。当url为空的时候,当loadfail的是时候等等。


2.接下来第二只用方法了:相当于自己写一个viewpage,用handle耗时去自动的滑动图片。

既可以加载本地图片的。

<RelativeLayout     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:layout_gravity="center"     android:layout_marginBottom="12dp"     android:foregroundGravity="center"     android:gravity="center"     android:orientation="vertical">      <android.support.v4.view.ViewPager         android:id="@+id/viewPager"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_margin="10dp" />                <LinearLayout                 android:id="@+id/viewGroup"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_gravity="center_horizontal"                 android:gravity="center_horizontal|bottom"                 android:orientation="horizontal">       </LinearLayout>     </RelativeLayot>
 

上面是具体的布局文件,接下来是具体的代码了,在相应的java文中。

 

还会用到:

private void setImageBackground(int index) {     for(int i=0; i<dots.length; i++){         if(i == index){             dots[i].setBackgroundResource(R.mipmap.dot_focus);         }else{             dots[i].setBackgroundResource(R.mipmap.dot);         }     }  }

在oncreate中调用initView();就行了。

这里是viewpage的adapter。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!