首先在settingmanager中进行判断
public class SettingManager {
private volatile static SettingManager manager;
public static SettingManager getInstance() {
return manager != null ? manager : (manager = new SettingManager());
}
public boolean isNoneCover() {
return SharedPreferencesUtil.getInstance().getBoolean("isNoneCover", false);
}
public void saveNoneCover(boolean isNoneCover) {
SharedPreferencesUtil.getInstance().putBoolean("isNoneCover", isNoneCover);
}
}
public class SharedPreferencesUtil {
private static SharedPreferencesUtil prefsUtil;
public Context context;
public SharedPreferences prefs;
public SharedPreferences.Editor editor;
public synchronized static SharedPreferencesUtil getInstance() {
return prefsUtil;
}
public static void init(Context context, String prefsname, int mode) {
prefsUtil = new SharedPreferencesUtil();
prefsUtil.context = context;
prefsUtil.prefs = prefsUtil.context.getSharedPreferences(prefsname, mode);
prefsUtil.editor = prefsUtil.prefs.edit();
}
private SharedPreferencesUtil() {
}
public boolean getBoolean(String key, boolean defaultVal) {
return this.prefs.getBoolean(key, defaultVal);
}
public boolean getBoolean(String key) {
return this.prefs.getBoolean(key, false);
}
public String getString(String key, String defaultVal) {
return this.prefs.getString(key, defaultVal);
}
public String getString(String key) {
return this.prefs.getString(key, null);
}
public int getInt(String key, int defaultVal) {
return this.prefs.getInt(key, defaultVal);
}
public int getInt(String key) {
return this.prefs.getInt(key, 0);
}
public float getFloat(String key, float defaultVal) {
return this.prefs.getFloat(key, defaultVal);
}
public float getFloat(String key) {
return this.prefs.getFloat(key, 0f);
}
public long getLong(String key, long defaultVal) {
return this.prefs.getLong(key, defaultVal);
}
public long getLong(String key) {
return this.prefs.getLong(key, 0l);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public Set<String> getStringSet(String key, Set<String> defaultVal) {
return this.prefs.getStringSet(key, defaultVal);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public Set<String> getStringSet(String key) {
return this.prefs.getStringSet(key, null);
}
public Map<String, ?> getAll() {
return this.prefs.getAll();
}
public boolean exists(String key) {
return prefs.contains(key);
}
public SharedPreferencesUtil putString(String key, String value) {
editor.putString(key, value);
editor.commit();
return this;
}
public SharedPreferencesUtil putInt(String key, int value) {
editor.putInt(key, value);
editor.commit();
return this;
}
public SharedPreferencesUtil putFloat(String key, float value) {
editor.putFloat(key, value);
editor.commit();
return this;
}
public SharedPreferencesUtil putLong(String key, long value) {
editor.putLong(key, value);
editor.commit();
return this;
}
public SharedPreferencesUtil putBoolean(String key, boolean value) {
editor.putBoolean(key, value);
editor.commit();
return this;
}
public void commit() {
editor.commit();
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public SharedPreferencesUtil putStringSet(String key, Set<String> value) {
editor.putStringSet(key, value);
editor.commit();
return this;
}
public void putObject(String key, Object object) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(baos);
out.writeObject(object);
String objectVal = new String(Base64.encode(baos.toByteArray(), Base64.DEFAULT));
editor.putString(key, objectVal);
editor.commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public <T> T getObject(String key, Class<T> clazz) {
if (prefs.contains(key)) {
String objectVal = prefs.getString(key, null);
byte[] buffer = Base64.decode(objectVal, Base64.DEFAULT);
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(bais);
T t = (T) ois.readObject();
return t;
} catch (StreamCorruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (bais != null) {
bais.close();
}
if (ois != null) {
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
public SharedPreferencesUtil remove(String key) {
editor.remove(key);
editor.commit();
return this;
}
public SharedPreferencesUtil removeAll() {
editor.clear();
editor.commit();
return this;
}
}
2.控件处处理,这里使用togglebutton
tb_wifi = (ToggleButton) findViewById(R.id.toggle_bt_img_wifi);
tb_wifi.setChecked(SettingManager.getInstance().isNoneCover());
3.控件监听状态
tb_wifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingManager.getInstance().saveNoneCover(isChecked);//保存状态
}
});
具体的列表中是这样判断的
4.图片处的处理
/**
* 加载图片
* @param draweeView 图片控件
* @param url 地址
*/
private void showImg(SimpleDraweeView draweeView, String url) {
if(!SettingManager.getInstance().isNoneCover()){
ImageLoader.create(context)
.load(url)
.setPlaceholder(R.drawable.ic_img_default)
.setError(R.drawable.ic_img_default)
.setImageSize(127, 93)
.into(draweeView);
}
else {
if(isWifi(getContext())){
ImageLoader.create(context)
.load(url)
.setPlaceholder(R.drawable.ic_img_default)
.setError(R.drawable.ic_img_default)
.setImageSize(127, 93)
.into(draweeView);
}
else{
draweeView.setImageResource(R.drawable.ic_img_default);
}
}
}
4.wifi状态判断(这个网上很多哈,大家可以根据需求来)
/**
* 判断是否是wifi状态下
* @param mContext
* @return
*/
private static boolean isWifi(Context mContext) {
ConnectivityManager connectivityManager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetInfo != null
&& activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
}
return false;
}
如果有遇到webview中的图片也需要做处理的话可以这样
if(!SettingManager.getInstance().isNoneCover()){
settings.setBlockNetworkImage(false);//这句话是关键
}
else {
if(isWifi(getContext())){
settings.setBlockNetworkImage(false);
}
else{
settings.setBlockNetworkImage(true);//支持不下载webview图片
}
}
以上均为整理的材料以及项目中有涉及到的东西
好了,今天就到这边了!