Android查看网络连接需要加入的权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
侧滑菜单
使用DrawerLayout布局:
view_page = findViewById(R.id.view_page);
radio_group = findViewById(R.id.radio_group);
draw_layout = findViewById(R.id.draw_layout);
list_view = findViewById(R.id.list_view);
List<String> list_text=new ArrayList<>();
list_text.add("首页");
list_text.add("小视频");
list_text.add("我的");
list_view.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list_text));
list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view_page.setCurrentItem(position);
//关闭侧滑页面
draw_layout.closeDrawers();
}
});
ImageLoader:
String s = Environment.getExternalStorageDirectory() + "/caches";
File file = new File(s);
ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this)
// .diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
// .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级
// .tasksProcessingOrder(QueueProcessingType.FIFO) // default
// .denyCacheImageMultipleSizesInMemory()
// .memoryCacheSizePercentage(13) // default
//.diskCache(new UnlimitedDiscCache(cacheDir)) // default 可以自定义缓存路径
// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
// .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
// .imageDownloader(new BaseImageDownloader(context)) // default
//.imageDecoder(new BaseImageDecoder(true)) // default
//.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
//.discCache(new LimitedAgeDiscCache(cacheDir, 7 * 24 * 60 * 60))// 自定义缓存路径,7天后自动清除缓存
// .writeDebugLogs() // 打印debug lo
//.threadPoolSize(3) // default 线程池内加载的数量
.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
.diskCacheFileCount(100) // 可以缓存的文件数量
.diskCache(new UnlimitedDiskCache(file))//UnlimitedDiskCache 限制这个图片的缓存路径
.defaultDisplayImageOptions(Options()).build();
ImageLoader.getInstance().init(build);
private DisplayImageOptions Options(){
return new DisplayImageOptions.Builder()
.showStubImage(R.mipmap.bw_er)//缓冲过程中图片
.showImageForEmptyUri(R.mipmap.bw_empty)// 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.mipmap.bw_wf)// 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(true)//缓存道内存
.cacheOnDisc(true)//缓存到硬盘
.bitmapConfig(Bitmap.Config.ARGB_8888) //设置图片的解码类型
// .displayer(new RoundedBitmapDisplayer(30,10))//圆角
.displayer(new CircleBitmapDisplayer(Color.RED, 10))//圆形
.build();
}
判断网络状态:
public class InterState {
public static boolean getStates(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info != null) {
boolean b = info.isConnected();
return b;
} else {
return false;
}
}
public static boolean getWifiState(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (info != null) {
return true;
}else
{
return false;
}
}
}
public void init(){
xListView = findViewById(R.id.xListView);
xListView.setXListViewListener(this);
//加载刷新
xListView.setPullLoadEnable(true);
xListView.setPullRefreshEnable(true);
}
XListView的下拉刷新
@Override
public void onRefresh() {
page=1;
new Runnable(){
@Override
public void run() {
getDate();
adapter.notifyDataSetChanged();
}
}.run();
onLoad();
}
XListView的上拉加载
@Override
public void onLoadMore() {
page++;
new Runnable(){
@Override
public void run() {
getDate();
adapter.notifyDataSetChanged();
}
}.run();
onLoad();
}
关闭刷新,下拉
private void onLoad(){
xListView.stopRefresh();
xListView.stopLoadMore();
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());
xListView.setRefreshTime(formatter.format(curDate));
}