Banner的使用

build.gradle中加入(加在最下面):compile 'com.youth.banner:banner:1.4.10'添加之后需要点击右上角的 Sync Now 编译一下============================================添加权限:在这个控件里加入属性:android:name=".MyApp"=================================================================libs文件夹下加入jar包: gson 和 universal-image-loader==================================================================布局: ====================================================================主要方法:import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import com.google.gson.Gson;import com.youth.banner.Banner;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private Banner myBanner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myBanner = findViewById(R.id.mybanner); MyTask myTask=new MyTask(); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"); } private void setBanner(List urls) { //1.设置一个图片加载器 myBanner.setImageLoader(new MyBannerLoader()); //2.设置图片集合List lists myBanner.setImages(urls); //3.启动 myBanner.start(); } class MyTask extends AsyncTask { @Override protected String doInBackground(String... strings) { StringBuilder builder=new StringBuilder(); //1.根据url创建URL try { URL url=new URL(strings[0]); //2.打开连接 HttpURLConnection conn =(HttpURLConnection) url.openConnection(); //3.设置 conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); //4.判断结果码 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(); } Log.d("zzz",builder.toString()); return builder.toString(); } //async 执行完 doinbackground..后 马上来执行onPostExecute方法 @Override protected void onPostExecute(String s) { Gson gson=new Gson(); Result result = gson.fromJson(s, Result.class); //图片的url地址 List urls=new ArrayList(); List dataScroll = result.getDataScroll(); for(int i=0;i<dataScroll.size();i++){ urls.add("http://www.93.gov.cn"+dataScroll.get(i).getIMAGEURL()); } setBanner(urls); //更新listview// MyAdapter adapter=new MyAdapter(result.getData().getPc_feed_focus(),MainActivity.this);// listView.setAdapter(adapter); } }}============================================================================Result方法:public class Result {json解析类}============================================================================MyBannerLoader 方法:import android.content.Context;import android.graphics.Bitmap;import android.widget.ImageView;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import com.youth.banner.loader.ImageLoader;/** * Created by jane on 2017/12/12. *///注意:继承的是banner.ImageLoaderpublic class MyBannerLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { 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(); //params2:图片路径 params3:显示的控件上 com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(path.toString(),imageView,options); }}===================================================================MyApp 方法:import android.app.Application;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;import com.nostra13.universalimageloader.core.download.BaseImageDownloader;import java.io.File;/** * Created by jane on 2017/12/12. */public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); //自定义磁盘缓存路径 系统默认的缓存路径 sd.....cache 当app被卸载时,此路径下的缓存图片一并被删除 //File cacheDir=getExternalCacheDir(); File cacheDir= new File(Environment.getExternalStorageDirectory().getPath()+"/aaa");//自定义 sd卡的缓存路径 //第一步:对ImageLoader进行初使化 ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this) .memoryCacheExtraOptions(320, 450) // default = device screen dimensions 内存缓存文件的最大长宽 .diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个 .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为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密 .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) .imageDownloader(new BaseImageDownloader(this)) // default .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default .writeDebugLogs() // 打印debug log .build(); ImageLoader.getInstance().init(configuration); }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值