嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
已经是一个完整的客户端了,在将进一步优化完善后就和可以了。大体描述:
上次,已经完成了头部新闻分类栏目的拖动效果。
这篇文章是继续去完善APP 今日头条 这个新闻阅读器的其他功能。
这次所实现的功能清单:
1.通过SlidingMenu实现左右侧拉菜单效果
2.通过重写CompoundButton实现--昼夜模式切换按钮效果。
3.通过PopupWindow控件实现了列表中更多菜单弹框操作效果。
4.通过universal-image-loader库实现了图片的加载和缓存。
5.通过列表中各个属性的判断,实现了头条新闻列表的相应布局和显示效果。
package com.topnews.app;
import java.io.File;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.utils.StorageUtils;
import android.app.Application;
import android.content.Context;
import android.util.Log;
public class AppApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
initImageLoader(getApplicationContext());
}
@Override
public void onTerminate() {
// TODO Auto-generated method stub
super.onTerminate();
//整体摧毁的时候调用这个方法
}
/** 初始化ImageLoader */
public static void initImageLoader(Context context) {
File cacheDir = StorageUtils.getOwnCacheDirectory(context, "topnews/Cache");//获取到缓存的目录地址
Log.d("cacheDir", cacheDir.getPath());
//创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数
ImageLoaderConfiguration config = new ImageLoaderConfiguration
.Builder(context)
//.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
//.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) // Can slow ImageLoader, use it carefully (Better don't use it)设置缓存的详细信息,最好不要设置这个
.threadPoolSize(3)//线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
//.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation你可以通过自己的内存缓存实现
//.memoryCacheSize(2 * 1024 * 1024)
///.discCacheSize(50 * 1024 * 1024)
.discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
//.discCacheFileNameGenerator(new HashCodeFileNameGenerator())//将保存的时候的URI名称用HASHCODE加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
//.discCacheFileCount(100) //缓存的File数量
.discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
//.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
//.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);//全局初始化此配置
}
}