主页面布局SlidingMenu及fragment切换。
1 github 下载SlidingMenu及actionbarsherlock。
2 设置主页面及菜单页面。
3 设置夜间切换模式。
package com.konf.meiriyiwen.Activity;
import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.Resources;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.konf.meiriyiwen.R;
import com.konf.meiriyiwen.Tools.Tools;
import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingFragmentActivity;
public class ActivityMain extends SlidingFragmentActivity {
private View contentView;
private boolean isExit = false;
private WindowManager mWindowManager;
private SharedPreferences skinSp;
private final static String DAY = "day";
private final static String NIGHT = "night";
private View myView;
private SlidingMenu slidingMenu;
public void ShowMenuLeft() {
this.slidingMenu.showMenu();
}
public void ShowMenuRight() {
this.slidingMenu.showSecondaryMenu();
}
public void initView() {
Tools.Initialize(this);
this.slidingMenu = getSlidingMenu();
int i = Tools.getScreenWidth();
this.slidingMenu.setBehindOffset(4 * (i / 7));
this.slidingMenu.setFadeDegree(0.0F);
this.slidingMenu.setMode(0);
try {
getSupportFragmentManager().beginTransaction().replace(R.id.frame_activity_right, new FragmentMenu()).commit();
getSupportFragmentManager().beginTransaction().replace(R.id.frame_activity_content, new FragmentIndex("date")).commit();
return;
} catch (Resources.NotFoundException localNotFoundException) {
localNotFoundException.printStackTrace();
}
}
public void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
this.contentView = LinearLayout.inflate(this, R.layout.frame_content, null);
setContentView(this.contentView);
setBehindContentView(R.layout.frame_right);
initView();
skinSp = this.getSharedPreferences("skinchange", Context.MODE_PRIVATE);
}
public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) {
if (4 == paramInt) {
if (!this.isExit) {
this.isExit = true;
Toast.makeText(this, "再次点击退出程序", 0).show();
new Timer().schedule(new TimerTask() {
public void run() {
ActivityMain.this.isExit = false;
}
}, 2000L);
}
else {
finish();
System.exit(0);
}
}
return true;
}
public void setMenuTouchMode(int paramInt) {
this.slidingMenu.setTouchModeAbove(paramInt);
}
public void switchContent(Fragment paramFragment) {
getSupportFragmentManager().beginTransaction().replace(R.id.frame_activity_content, paramFragment).commit();
new Handler().postDelayed(new Runnable() {
public void run() {
ActivityMain.this.getSlidingMenu().showContent();
}
}, 50L);
}
public void night() {
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity=Gravity.BOTTOM;
params.y=10;
if(myView==null){
myView=new TextView(this);
myView.setBackgroundColor(0xaa000000);
}
mWindowManager.addView(myView, params);
//this.contentView.setBackgroundColor(0x99000000);
Editor edit = skinSp.edit();
edit.putString("skin", NIGHT);
edit.commit();
}
public void day(){
if(myView!=null){
mWindowManager.removeView(myView);
Editor edit = skinSp.edit();
edit.putString("skin", DAY);
edit.commit();
}
}
public void switchContent(Fragment paramFragment, boolean isNight) {
// TODO Auto-generated method stub
getSupportFragmentManager().beginTransaction().replace(R.id.frame_activity_content, paramFragment).commit();
new Handler().postDelayed(new Runnable() {
public void run() {
ActivityMain.this.getSlidingMenu().showContent();
}
}, 50L);
if (isNight) {
night();
}
else {
day();
}
}
}