140 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| package com.novelbook.android.dialog;
 | |
| 
 | |
| import android.app.Dialog;
 | |
| import android.content.Context;
 | |
| import android.os.Bundle;
 | |
| import android.view.Display;
 | |
| import android.view.Gravity;
 | |
| import android.view.View;
 | |
| import android.view.WindowManager;
 | |
| import android.widget.TextView;
 | |
| 
 | |
| import com.novelbook.android.utils.Config;
 | |
| import com.novelbook.android.R;
 | |
| 
 | |
| 
 | |
| import butterknife.BindView;
 | |
| import butterknife.ButterKnife;
 | |
| import butterknife.OnClick;
 | |
| 
 | |
| 
 | |
| public class PageModeDialog extends Dialog {
 | |
| 
 | |
|     @BindView(R.id.tv_simulation)
 | |
|     TextView tv_simulation;
 | |
|     @BindView(R.id.tv_cover)
 | |
|     TextView tv_cover;
 | |
|     @BindView(R.id.tv_slide)
 | |
|     TextView tv_slide;
 | |
|     @BindView(R.id.tv_none)
 | |
|     TextView tv_none;
 | |
| 
 | |
|     private Config config;
 | |
|     private PageModeListener pageModeListener;
 | |
| 
 | |
|     private PageModeDialog(Context context, boolean flag, OnCancelListener listener) {
 | |
|         super(context, flag, listener);
 | |
|     }
 | |
| 
 | |
|     public PageModeDialog(Context context) {
 | |
|         this(context, R.style.setting_dialog);
 | |
|     }
 | |
| 
 | |
|     public PageModeDialog(Context context, int themeResId) {
 | |
|         super(context, themeResId);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     @Override
 | |
|     protected void onCreate(Bundle savedInstanceState) {
 | |
|         super.onCreate(savedInstanceState);
 | |
|         getWindow().setGravity(Gravity.BOTTOM);
 | |
|         setContentView(R.layout.zdialog_pagemode);
 | |
|         // 初始化View注入
 | |
|         ButterKnife.bind(this);
 | |
| 
 | |
|         WindowManager m = getWindow().getWindowManager();
 | |
|         Display d = m.getDefaultDisplay();
 | |
|         WindowManager.LayoutParams p = getWindow().getAttributes();
 | |
|         p.width = d.getWidth();
 | |
|         getWindow().setAttributes(p);
 | |
| 
 | |
|         config = Config.getInstance();
 | |
|         selectPageMode(config.getPageMode());
 | |
|       //  getWindow().setNavigationBarColor(getResources().getColor(R.color.read_dialog_bg));
 | |
|     }
 | |
| 
 | |
|     @OnClick({R.id.tv_simulation, R.id.tv_cover, R.id.tv_slide, R.id.tv_none})
 | |
|     public void onClick(View view) {
 | |
|         switch (view.getId()) {
 | |
|             case R.id.tv_simulation:
 | |
|                 selectPageMode(Config.PAGE_MODE_SIMULATION);
 | |
|                 setPageMode(Config.PAGE_MODE_SIMULATION);
 | |
|                 break;
 | |
|             case R.id.tv_cover:
 | |
|                 selectPageMode(Config.PAGE_MODE_COVER);
 | |
|                 setPageMode(Config.PAGE_MODE_COVER);
 | |
|                 break;
 | |
|             case R.id.tv_slide:
 | |
|                 selectPageMode(Config.PAGE_MODE_SLIDE);
 | |
|                 setPageMode(Config.PAGE_MODE_SLIDE);
 | |
|                 break;
 | |
|             case R.id.tv_none:
 | |
|                 selectPageMode(Config.PAGE_MODE_NONE);
 | |
|                 setPageMode(Config.PAGE_MODE_NONE);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置翻页
 | |
|     public void setPageMode(int pageMode) {
 | |
|         config.setPageMode(pageMode);
 | |
|         if (pageModeListener != null) {
 | |
|             pageModeListener.changePageMode(pageMode);
 | |
|         }
 | |
|     }
 | |
|     //选择怕翻页
 | |
|     private void selectPageMode(int pageMode) {
 | |
|         if (pageMode == Config.PAGE_MODE_SIMULATION) {
 | |
|             setTextViewSelect(tv_simulation, true);
 | |
|             setTextViewSelect(tv_cover, false);
 | |
|             setTextViewSelect(tv_slide, false);
 | |
|             setTextViewSelect(tv_none, false);
 | |
|         } else if (pageMode == Config.PAGE_MODE_COVER) {
 | |
|             setTextViewSelect(tv_simulation, false);
 | |
|             setTextViewSelect(tv_cover, true);
 | |
|             setTextViewSelect(tv_slide, false);
 | |
|             setTextViewSelect(tv_none, false);
 | |
|         } else if (pageMode == Config.PAGE_MODE_SLIDE) {
 | |
|             setTextViewSelect(tv_simulation, false);
 | |
|             setTextViewSelect(tv_cover, false);
 | |
|             setTextViewSelect(tv_slide, true);
 | |
|             setTextViewSelect(tv_none, false);
 | |
|         } else if (pageMode == Config.PAGE_MODE_NONE) {
 | |
|             setTextViewSelect(tv_simulation, false);
 | |
|             setTextViewSelect(tv_cover, false);
 | |
|             setTextViewSelect(tv_slide, false);
 | |
|             setTextViewSelect(tv_none, true);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置按钮选择的背景
 | |
|     private void setTextViewSelect(TextView textView, Boolean isSelect) {
 | |
|         if (isSelect) {
 | |
|             textView.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.button_select_bg));
 | |
|             textView.setTextColor(getContext().getResources().getColor(R.color.read_dialog_button_select));
 | |
|         } else {
 | |
|             textView.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.button_bg));
 | |
|             textView.setTextColor(getContext().getResources().getColor(R.color.white));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public void setPageModeListener(PageModeListener pageModeListener) {
 | |
|         this.pageModeListener = pageModeListener;
 | |
|     }
 | |
| 
 | |
|     public interface PageModeListener {
 | |
|         void changePageMode(int pageMode);
 | |
|     }
 | |
| }
 |