Banner

最先导依赖
 
compile  'com.youth.banner:banner:1.4.10'
 
  activity_main.xml中设置控件

< com. youth. banner. Banner
         android: id = "@+id/banner"
         android: layout_width = "match_parent"
         android: layout_height = "200dp"/ >
 
设置全局变量

private  List < String >  data =  new  ArrayList <>();
private  Banner  banner;
 
 MainActivity 初始化图片并找到Banner控件
 
  ImageLoaderutils. initImageLoader( MainActivity. this);
 banner  =  findViewById( R. id. banner);
 
网络获取数据并只保存图片
 
  //  banner
              MyNetTask  task  =  new  MyNetTask( new  MyNetTask. IcallBack() {
                  @ Override
                   public  void  getJsonData( String  jsonStr) {
                        Gson  gson  =  new  Gson();
                        ShuJu  shuJu  =  gson. fromJson( jsonStrShuJu. class);
                        List < ShuJu. DataScrollBean >  dataScroll  =  shuJu. getDataScroll();
                        for ( int  i  =  0i  < dataScroll. size(); i ++){
                             data. add( "http://www.93.gov.cn" + dataScroll. get( i). getIMAGEURL());
                       }
                             setbanner( data);
                  }
             });
              task. execute( "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0");
 
setbanner(data);方法

public  void  setbanner ( List < String >  data )  {
         this . data  =  data ;
         banner . setImageLoader ( new  MyBannerLoader ( )) ;
         banner . setImages ( data ) ;
         banner . start ( ) ;
     }
 
 MyNetTasty类——————(网络请求工具包)
 
public  class  MyNetTask  extends  AsyncTask < String, Void, String > {
     //2.
     private  IcallBack  icallBack;
     //3.
     public  MyNetTask( IcallBack  icallBack) {
         this. icallBack  =  icallBack;
    }
    @ Override
     protected  String  doInBackground( String...  strings) {
         StringBuilder  builder = new  StringBuilder();
         //1.urlURL
         try {
              URL  url = new  URL( strings[ 0]);
              //2.
              HttpURLConnection  conn  =( HttpURLConnectionurl. openConnection();
              //3.
              conn. setRequestMethod( "GET");
              conn. setConnectTimeout( 5000);
              conn. setReadTimeout( 5000);
              //4.
              int  responseCode  =  conn. getResponseCode();
              if( conn. getResponseCode() == 200){
                   //5.
                   InputStream  inputStream  =  conn. getInputStream();
                   BufferedReader  reader = new  BufferedReader( new  InputStreamReader( inputStream));
                   String  str;
                   while (( str = reader. readLine()) != null){
                        builder. append( str);
                  }
             }
        }  catch ( MalformedURLException  e) {
              e. printStackTrace();
        }  catch ( IOException  e) {
              e. printStackTrace();
        }
         return  builder. toString();
    }
    @ Override
     protected  void  onPostExecute( String  s) {
         super. onPostExecute( s);
         //4.
         icallBack. getJsonData( s);
    }
     //1.
     public  interface  IcallBack{
         void  getJsonData( String  jsonStr);
    }
 
ImageLoaderutils类————(图片加载工具类)
 
public  class  ImageLoaderutils {
     //使
     public  static  void  initImageLoader( Context  context){
         //   sd...<package>..cache  app
         //File cacheDir=getExternalCacheDir();
         File  cacheDir =  new  File( Environment. getExternalStorageDirectory(). getPath() + "/aaa"); // sd
         //ImageLoader使
         ImageLoaderConfiguration  configuration = new  ImageLoaderConfiguration. Builder( context)
                  . memoryCacheExtraOptions( 320450// default = device screen dimensions 
                  . diskCacheExtraOptions( 480800null)   // ()
                  . threadPriority( Thread. NORM_PRIORITY  -  2// default 线
                  . tasksProcessingOrder( QueueProcessingType. FIFO// default
                  . denyCacheImageMultipleSizesInMemory()
                  . memoryCache( new  LruMemoryCache( 10  *  1024  *  1024))  //
                  . memoryCacheSize( 2  *  1024  *  1024)   // 
                  . memoryCacheSizePercentage( 13// default
                  . diskCache( new  UnlimitedDiscCache( cacheDir))  //  --default 
                  . diskCacheSize( 20  *  1024  *  1024// 50 Mb sd()
                  . diskCacheFileCount( 100)   // 
                   // default使HASHCODEUIL MD5(new Md5FileNameGenerator())
                  . diskCacheFileNameGenerator( new  HashCodeFileNameGenerator())
                  . imageDownloader( new  BaseImageDownloader( context))  // default
                  . defaultDisplayImageOptions( DisplayImageOptions. createSimple())  // default
                  . writeDebugLogs()  // debug log
                  . build();
         ImageLoader. getInstance(). init( configuration);
    }
     /**
      * 
      *  @param  context
      *  @return
      */
     public   static   DisplayImageOptions  getImageOption( Context  context){
         DisplayImageOptions  options = new  DisplayImageOptions. Builder()
                  . cacheInMemory( true) //使
                  . cacheOnDisk( true) //使
                  . showImageOnLoading( R. mipmap. ic_launcher) //
                  . showImageForEmptyUri( R. mipmap. ic_launcher) //url
                  . showImageOnFail( R. mipmap. ic_launcher) //
                  . bitmapConfig( Bitmap. Config. RGB_565) //
                  . imageScaleType( ImageScaleType. EXACTLY) //===imageView,,ScaleType
                  . displayer( new  RoundedBitmapDisplayer( 50)) //  
                  . build();
         return   options;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值