在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android 小说阅读器app源码

android 小说阅读器app源码

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:2.48M
  • 下载次数:104
  • 浏览次数:1123
  • 发布时间:2018-03-26
  • 实例类别:Android平台开发
  • 发 布 人:Promise丶xxxx
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 阅读器 阅读

实例介绍

【实例简介】

【实例截图】

    from clipboard


from clipboard


from clipboard


【核心代码】

package com.lxm.txtapp;

import info.monitorenter.cpdetector.io.ASCIIDetector;
import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
import info.monitorenter.cpdetector.io.JChardetFacade;
import info.monitorenter.cpdetector.io.ParsingDetector;
import info.monitorenter.cpdetector.io.UnicodeDetector;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.GridView;
import android.widget.PopupWindow;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import cn.waps.AppConnect;

public class turntest extends Activity implements View.OnClickListener {
	/** Called when the activity is first created. */
	private PageWidget mPageWidget;
	Bitmap mCurPageBitmap, mNextPageBitmap;
	Canvas mCurPageCanvas, mNextPageCanvas;
	BookPageFactory pagefactory;
	private String datapath;
	private int mWidth;
	private int mHeight;
	private PopupWindow popupWindow = null;
	private TextView mTextView;
	private TimeChangedReceiver timeChange;
	static String CONFIG = "config";
	static String LIGHT = "light";
	static String BACKCOLOR = "backcolor";
	static String TXTCOLOR = "txtcolor";
	static String USEBG = "useBg";
	static String FONT_SIZE = "font_size";
	static String LINE_JIANJU = "line_jianju";
	static String LIGHT_USERSYSTEM = "light_userSys";
	static public String dialog_string = "The current version:V001.";
	static String JINDU = "jindu"; // 保存退出位置
	private MarkHelper markhelper;
	private String bookPath;// 记录读入书的路径
	private MarkDialog mDialog = null;
	private String bookname = "";
	private int bookid = 0;

	// public static native parse()
	private static class TimeChangedReceiver extends BroadcastReceiver {
		/**
		 * PageWidget mPageWidget
		 */
		private PageWidget mPageWidget;

		public TimeChangedReceiver(PageWidget mPageWidget) {
			// TODO Auto-generated constructor stub
			this.mPageWidget = mPageWidget;
		}

		@Override
		public void onReceive(Context context, Intent intent) {
			// Post a runnable to avoid blocking the broadcast.
			// turntest.this.getMainLooper().getThread().
			mPageWidget.bIsTimeRefresh = true;
			mPageWidget.settime();
			Log.i("lxm", "sss");
		}
	};

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
		mWidth = GetW(this);
		mHeight = GetH(this);
		markhelper = new MarkHelper(this);
		bookid = (int) getIntent().getExtras().getInt("bookname");
		bookname = MainActivity.bookslist[bookid];
		Log.i("lxmlmx", bookname);
		// mPageWidget = //new PageWidget(this, mWidth, mHeight);
		setContentView(R.layout.pagewidget_main);
		mPageWidget = (PageWidget) findViewById(R.id.PageWidget);
		// Log.i("lxm  ",mPageWidget.getHeight() "--" mPageWidget.getWidth());
		timeChange = new TimeChangedReceiver(mPageWidget);
		IntentFilter filter = new IntentFilter();
		filter.addAction(Intent.ACTION_TIME_TICK);
		filter.addAction(Intent.ACTION_TIME_CHANGED);
		filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
		this.registerReceiver(timeChange, filter);
		datapath = "/data/data/"   this.getPackageName().toString()
				  "/databases";
		mCurPageBitmap = Bitmap.createBitmap(mWidth, mHeight,
				Bitmap.Config.ARGB_8888);
		mNextPageBitmap = Bitmap.createBitmap(mWidth, mHeight,
				Bitmap.Config.ARGB_8888);

		mCurPageCanvas = new Canvas(mCurPageBitmap);
		mNextPageCanvas = new Canvas(mNextPageBitmap);
		pagefactory = new BookPageFactory(this, mWidth, mHeight, getIntPeizhi(
				BACKCOLOR, Color.WHITE), getIntPeizhi(TXTCOLOR, Color.BLACK),
				getIntPeizhi(LINE_JIANJU, 5), getIntPeizhi(FONT_SIZE, 29),
				getIntPeizhi(JINDU   bookname, 0));
		mPageWidget.setcolor(getIntPeizhi(TXTCOLOR, Color.BLACK));
		if (getBoolPeizhi(USEBG, false)) {
			pagefactory.setUseBg(true);
			pagefactory.setBgBitmap(BitmapFactory.decodeResource(
					this.getResources(), getIntPeizhi(BACKCOLOR, 0)));
		}
		setbacklight();
		try {
			CopyRawtodata.CopyRawtodata(datapath, bookname,
					getApplicationContext(), MainActivity.bookslistid[bookid],
					true);
			// 这里需要加入编码
			pagefactory.openbook(datapath   "/"   bookname);
			// 这里需要配置画笔颜色 以及背景颜色
			pagefactory.Draw(mCurPageCanvas, mPageWidget);
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();

			show_toast("system error,I am Sorry!");
			// Toast.makeText(this, "系统出现异常,I am Sorry!", Toast.LENGTH_SHORT)
			// .show();
		}
		// 检测编码,然后传入编码格式
		String aaa = getFileEncode(datapath   "/"   bookname);
		Log.i("aaa", aaa);
		bookPath = datapath   "/"   bookname;
		mPageWidget.setBitmaps(mCurPageBitmap, mCurPageBitmap);

		mPageWidget.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent e) {
				// TODO Auto-generated method stub
				// return false;
				boolean ret = false;
				if (v == mPageWidget) {
					if (e.getAction() == MotionEvent.ACTION_DOWN) {
						// if (!pagefactory.isfirstPage())
						mPageWidget.abortAnimation();
						mPageWidget.bIsShowNoMore = false;
						mPageWidget.calcCornerXY(e.getX(), e.getY());
						Log.i("lxm", "setOnTouchListener");
						pagefactory.Draw(mCurPageCanvas, mPageWidget);
						if (mPageWidget.DragToRight()) {
							try {
								pagefactory.prePage();
							} catch (IOException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
							}
							if (pagefactory.isfirstPage()) {
								mPageWidget.bIsShowNoMore = true;
								mPageWidget.invalidate();
								return true;
							}
							pagefactory.Draw(mNextPageCanvas, mPageWidget);
						} else {
							try {
								pagefactory.nextPage();
							} catch (IOException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
							}
							if (pagefactory.islastPage()) {
								mPageWidget.bIsShowNoMore = true;
								mPageWidget.invalidate();
								return true;
							}
							// return true;
							pagefactory.Draw(mNextPageCanvas, mPageWidget);
						}
						mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap);
					} else if (e.getAction() == MotionEvent.ACTION_UP
							|| e.getAction() == MotionEvent.ACTION_MOVE) {
						// if ((mPageWidget.DragToRight()
						// &&pagefactory.isfirstPage())
						// || pagefactory.islastPage()) {
						// {
						// Log.i("lxm", "1" mPageWidget.DragToRight());
						// Log.i("lxm", "1" pagefactory.isfirstPage());
						// Log.i("lxm", "1" pagefactory.islastPage());
						// return true;
						// }
						// }
					}

					return ret;
				}
				return false;
			}

		});
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#onWindowFocusChanged(boolean)
	 */
	@Override
	public void onWindowFocusChanged(boolean hasFocus) {
		// TODO Auto-generated method stub
		// Log.i("lxm  ",mPageWidget.getHeight() "--" mPageWidget.getWidth());
		mWidth = mPageWidget.getWidth();
		mHeight = mPageWidget.getHeight();
		super.onWindowFocusChanged(hasFocus);
	}

	@Override
	public void onBackPressed() {
		if (popupWindow != null) {
			if (popupWindow.isShowing()) {
				popupWindow.dismiss();
			} else {
				super.onBackPressed();
			}
		} else {
			super.onBackPressed();
		}

	}

	private void MyDialog() {
		LayoutInflater flater = LayoutInflater.from(this);

		View view = flater.inflate(R.layout.my_dialog, null);

		AlertDialog.Builder builder = new AlertDialog.Builder(turntest.this);
		// builder.setCancelable(true);
		builder.setView(view);

		final AlertDialog alert = builder.create();
		// alert.dispatchKeyEvent(event)
		alert.show();
		// alert.
		Button btnSearch = (Button) view.findViewById(R.id.about);
		// ((TextView) view.findViewById(R.id.message)).setText(Html
		// .fromHtml(dialog_string));
		((TextView) view.findViewById(R.id.message)).setText(dialog_string);
		btnSearch.setOnClickListener(new OnClickListener()

		{

			public void onClick(View v)

			{
				alert.dismiss();
				AppConnect.getInstance(turntest.this).showGameOffers(
						turntest.this);
			}

		});

	}

	@Override
	public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
		switch (event.getAction()) {
		case KeyEvent.ACTION_DOWN: {
			if (keyCode == KeyEvent.KEYCODE_MENU) {

				initPopupWindow();
			}
		}
			break;
		}
		return super.onKeyDown(keyCode, event);

	};

	/**
	 * 弹出PopupWindow
	 */
	public void initPopupWindow() {
		// 加载PopupWindow的布局文件
		LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = layoutInflater.inflate(R.layout.popup, null);
		// 加载PopupWindow的媒介布局文件
		View parentView = layoutInflater.inflate(R.layout.first, null);
		// 实例化PopupWindow中的组件
		// TextView titleTextView = (TextView)
		// view.findViewById(R.id.popup_title);
		// ImageView editImg = (ImageView) view.findViewById(R.id.popup_edit);
		// ImageView listenImg = (ImageView)
		// view.findViewById(R.id.popup_listen);

		// SeekBar seekBar = (SeekBar) view.findViewById(R.id.popup_progress);
		// TextView progressTextView = (TextView) view
		// .findViewById(R.id.popup_progress_tv);
		// view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
		// LayoutParams.WRAP_CONTENT));
		TextView black = (TextView) view.findViewById(R.id.black_txt);
		black.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (popupWindow != null) {
					popupWindow.dismiss();
				}
			}
		});

		TextView bookmark = (TextView) view.findViewById(R.id.bookmark);
		bookmark.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (popupWindow != null) {
					popupWindow.dismiss();
				}
				SQLiteDatabase db = markhelper.getWritableDatabase();
				try {
					String col[] = { "path", "begin", "word", "time" };
					Cursor cur = db.query("markhelper", col,
							"path=? AND begin=? ", new String[] { bookPath,
									""   pagefactory.get_jindu() }, null, null,
							null);
					Integer num = cur.getCount();
					if (num > 0) {
						show_toast("The bookmark already exists!");
						cur.close();
						db.close();

						return;
					}
					SimpleDateFormat sf = new SimpleDateFormat(
							"yyyy-MM-dd HH:mm ss");
					String time = sf.format(new Date());
					db.execSQL(
							"insert into markhelper (path ,begin,word,time) values (?,?,?,?)",
							new String[] { bookPath,
									pagefactory.get_jindu()   "",
									pagefactory.get_work(), time });
					db.close();
					show_toast("Bookmark added successfully!");

				} catch (SQLException e) {
					show_toast("The bookmark already exists!");

				} catch (Exception e) {
					show_toast("Add bookmark failure!");
				}
			}
		});
		// black.get
		GridView gridView = (GridView) view.findViewById(R.id.popup_grid);
		GridViewAdapter adapter = new GridViewAdapter(this, mPictures, mTitles,
				R.layout.grid);
		gridView.setAdapter(adapter);
		gridView.setOnItemClickListener(new ItemClickListener());
		gridView.setOnItemSelectedListener(new OnItemSelectedListener() {
			/*
			 * (non-Javadoc)
			 * 
			 * @see
			 * android.widget.AdapterView.OnItemSelectedListener#onItemSelected
			 * (android.widget.AdapterView, android.view.View, int, long)
			 */
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub

			}

			/*
			 * (non-Javadoc)
			 * 
			 * @see
			 * android.widget.AdapterView.OnItemSelectedListener#onNothingSelected
			 * (android.widget.AdapterView)
			 */
			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub

			}
		});
		// 声明并实例化PopupWindow
		popupWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,
				LayoutParams.WRAP_CONTENT);
		// 为PopupWindow设置弹出的位置
		// popupWindow.showAsDropDown(parentView);

		// popupWindow.setBackgroundDrawable(new BitmapDrawable());
		popupWindow.setFocusable(true);
		popupWindow.setTouchable(true);
		// popupWindow.
		// popupWindow.update();
		// popupWindow.setBackgroundDrawable(new BitmapDrawable());
		popupWindow.setOutsideTouchable(true);// 点击窗口外消失,需要设置背景、焦点、touchable、update
		// popupWindow.set
		popupWindow.setWindowLayoutMode(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		popupWindow.showAtLocation(parentView, Gravity.NO_GRAVITY, 0, 0);
		// popupWindow.setFocusable(true);
		// 这句是为了防止弹出菜单获取焦点之后,点击activity的其他组件没有响应
		// popupWindow.setAnimationStyle(R.style.popup_show_out);
		popupWindow.setAnimationStyle(android.R.style.Animation_Translucent);
		popupWindow.getContentView().findViewById(R.id.main)
				.setOnKeyListener(new OnKeyListener() {

					@Override
					public boolean onKey(View v, int keyCode, KeyEvent event) {
						// TODO Auto-generated method stub
						Log.i("lxm", "key press");
						switch (event.getAction()) {
						case KeyEvent.ACTION_DOWN:
							if (keyCode == KeyEvent.KEYCODE_MENU
									|| keyCode == KeyEvent.KEYCODE_BACK) {
								if (popupWindow != null) {
									popupWindow.dismiss();
								}
							}
							break;
						}
						return false;
					}
				});
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see android.view.View.OnClickListener#onClick(android.view.View)
	 */
	// lxm
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub

		int tag = Integer.parseInt((String) v.getTag());
		Log.i("eee", "tag"   v.getTag());
		if (tag <= 10) {
			pagefactory.setTextColor(color[tag][1]);// 设置笔刷颜色
			mPageWidget.setcolor(color[tag][1]);
			pagefactory.setUseBg(false);
			pagefactory.Draw(mCurPageCanvas, color[tag][0], mPageWidget); // 设置背景颜色
			mPageWidget.setcurBitmaps(mCurPageBitmap);

			PutBoolPeizhi(USEBG, false);
			PutIntPeizhi(BACKCOLOR, color[tag][0]);
			PutIntPeizhi(TXTCOLOR, color[tag][1]);
		} else {
			pagefactory.setTextColor(colorbg[tag - 11][1]);// 设置笔刷颜色
			mPageWidget.setcolor(colorbg[tag - 11][1]);
			pagefactory.setBgBitmap(BitmapFactory.decodeResource(
					this.getResources(), colorbg[tag - 11][0])); // 设置背景颜色
			pagefactory.setUseBg(true);
			pagefactory.Draw(mCurPageCanvas, 0, mPageWidget); // 设置背景颜色

			mPageWidget.setcurBitmaps(mCurPageBitmap);
			PutIntPeizhi(BACKCOLOR, colorbg[tag - 11][0]);
			PutIntPeizhi(TXTCOLOR, colorbg[tag - 11][1]);
			PutBoolPeizhi(USEBG, true);
		}
	}

	public void setfont(int fontsize) {
		pagefactory.fontsizechange(fontsize);
		pagefactory.Draw(mCurPageCanvas, mPageWidget);
		mPageWidget.setcurBitmaps(mCurPageBitmap);
	}

	public void setline_jianju(int line_jianju) {
		pagefactory.fontline_jianju(line_jianju);
		pagefactory.Draw(mCurPageCanvas, mPageWidget);
		mPageWidget.setcurBitmaps(mCurPageBitmap);
	}

	private final class ItemClickListener implements OnItemClickListener {
		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position,
				long id) {
			if (popupWindow.isShowing()) {
				popupWindow.dismiss();// 关闭
				// getParent().getWindow().c
			}
			// view.setBackgroundResource(R.drawable.pop_pressed);
			Log.i("lxm", ""   position);
			switch (position) {
			case 7:
				initjinduPopupWindow(turntest.this);
				break;
			case 6: // 分享
				MyUtil.fenxiang(turntest.this);
				break;
			case 4: // 娱乐
				AppConnect.getInstance(turntest.this).showGameOffers(
						turntest.this);
				break;
			case 2: // 亮度调节
				initlightPopupWindow(turntest.this);
				break;
			case 5: // 关于
				MyDialog();
				break;
			case 1: //
				initFontPopupWindow(turntest.this);
				break;
			case 3:
				initReadPopupWindow(turntest.this);
				break;
			case 0:
				show_bookmark();
				break;
			default:
				Toast show = Toast.makeText(turntest.this,
						"Is not currently supported, so stay tuned.",
						Toast.LENGTH_SHORT);
				show.setGravity(Gravity.CENTER_HORIZONTAL
						| Gravity.CENTER_VERTICAL, 0, 0); // .show();
				show.show();
				break;
			}
		}
	}

	/**
	 * 图片资源
	 */
	private int[] mPictures = { R.drawable.cartoon_extract,
			R.drawable.cartoon_fontsize, R.drawable.cartoon_light,
			R.drawable.cartoon_style, R.drawable.cartoon_internet,
			R.drawable.cartoon_about_us, R.drawable.cartoon_share,
			R.drawable.cartoon_jump, };
	private int[][] color = { { 0xFFFFFFFF, 0xFF000000 },
			{ 0xFFCCE8CF, 0xFF333333 },// 背景色,前景色 // 护眼
			{ 0xFF151C1F, 0xFF4D5052 },// 夜间1
			{ 0xFF000000, 0xFF373737 },// 夜间2
			{ 0xFF000000, 0xFF5F5F5F },// 夜间3
			{ 0xFF000000, 0xFF333333 },// 夜间4
			{ 0xFF000000, 0xFF494949 },// 夜间5
			{ 0xFF000000, 0xFF222222 },// 夜间6
			{ 0xFF001622, 0xFF204353 },// 夜间7
			{ 0xFF171F27, 0xFF445053 },// 夜间8
			{ 0xFF251C05, 0xFF574F3C },// 夜间9

	};

	private int[][] colorbg = { { R.raw.bg1, 0xFF95938F },// Bg 1
			{ R.raw.bg2, 0xFF3A342B },// Bg 2
			{ R.raw.bg3, 0xFF637079 },// Bg 3
			{ R.raw.bg5, 0xFF3A342B },// Bg 5
	// #FF3A342B
	};
	/**
	 * 文字资源
	 */
	private String[] mTitles = { "Bookmarks", "Font Size", "Brightness",
			"Read Style", "Recreation", "About", "Share", "Progress Rate" };

	public int GetW(Activity context) {
		// int screenWidth ;
		DisplayMetrics dm; // = new DisplayMetrics();
		// dm = context.getResources().getDisplayMetrics();

		dm = new DisplayMetrics();
		context.getWindowManager().getDefaultDisplay().getMetrics(dm);

		// dm.widthPixels;
		return dm.widthPixels;
	}

	public int GetH(Activity context) {
		// int screenWidth ;
		DisplayMetrics dm; // = new DisplayMetrics();
		// dm = context.getResources().getDisplayMetrics();

		dm = new DisplayMetrics();
		context.getWindowManager().getDefaultDisplay().getMetrics(dm);

		// dm.widthPixels;
		return dm.heightPixels;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#onDestroy()
	 */
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		AppConnect.getInstance(this).close();
		if (timeChange != null) {
			this.unregisterReceiver(timeChange);
			timeChange = null;
		}
		super.onDestroy();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#onPause()
	 */
	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		if (timeChange != null) {
			this.unregisterReceiver(timeChange);
			timeChange = null;
		}
		PutIntPeizhi(JINDU   bookname, pagefactory.get_jindu());
		super.onPause();
	}

	protected void onSaveInstanceState(Bundle outState) {

		PutIntPeizhi(JINDU   bookname, pagefactory.get_jindu());
	};

	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#onResume()
	 */
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		IntentFilter filter = new IntentFilter();
		filter.addAction(Intent.ACTION_TIME_TICK);
		filter.addAction(Intent.ACTION_TIME_CHANGED);
		filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
		this.registerReceiver(timeChange, filter);
		AppConnect.getInstance(this).showPopAd(this);
		super.onResume();
	}

	public void setbacklight() {
		SharedPreferences Preferences = turntest.this.getSharedPreferences(
				CONFIG, Context.MODE_PRIVATE);
		if (Preferences.getBoolean(LIGHT_USERSYSTEM, false)) {
			// 如果是系统设置了,不处理
			return;
		}
		WindowManager.LayoutParams wl = turntest.this.getWindow()
				.getAttributes();
		// SharedPreferences Preferences = turntest.this.getSharedPreferences(
		// CONFIG, Context.MODE_PRIVATE);
		float tmpFloat = (float) Preferences.getFloat(LIGHT, -1);
		Log.i("lxm", "22222:"   tmpFloat   "%");
		if (tmpFloat > 0 && tmpFloat <= 1) {
			wl.screenBrightness = tmpFloat;
		}
		turntest.this.getWindow().setAttributes(wl);
	}

	public void initlightPopupWindow(Context context) {
		// 加载PopupWindow的布局文件
		LayoutInflater layoutInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = layoutInflater.inflate(R.layout.popup_light, null);
		// 加载PopupWindow的媒介布局文件
		View parentView = layoutInflater.inflate(R.layout.main, null);

		final PopupWindow popupWindow = new PopupWindow(view,
				LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
		popupWindow.setFocusable(true);
		popupWindow.setTouchable(true);
		popupWindow.setOutsideTouchable(true);// 点击窗口外消失,需要设置背景、焦点、touchable、update
		// popupWindow.set
		popupWindow.setWindowLayoutMode(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		popupWindow.showAtLocation(parentView, Gravity.NO_GRAVITY, 0, 0);
		// popupWindow.setFocusable(true);
		// 这句是为了防止弹出菜单获取焦点之后,点击activity的其他组件没有响应
		// popupWindow.setAnimationStyle(R.style.popup_show_out);
		popupWindow.setAnimationStyle(android.R.style.Animation_Translucent);
		TextView black = (TextView) view.findViewById(R.id.black_txt);
		black.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (popupWindow != null) {
					popupWindow.dismiss();
				}
			}
		});
		popupWindow.getContentView().findViewById(R.id.main)
				.setOnKeyListener(new OnKeyListener() {

					@Override
					public boolean onKey(View v, int keyCode, KeyEvent event) {
						// TODO Auto-generated method stub
						Log.i("lxm", "key press");
						switch (event.getAction()) {
						case KeyEvent.ACTION_DOWN:
							if (keyCode == KeyEvent.KEYCODE_MENU
									|| keyCode == KeyEvent.KEYCODE_BACK) {
								if (popupWindow != null) {
									popupWindow.dismiss();
								}
							}
							break;
						}
						return false;
					}
				});
		final SeekBar adjest = (SeekBar) view
				.findViewById(R.id.read_bright_adjust_group_id);

		SharedPreferences Preferences = turntest.this.getSharedPreferences(
				CONFIG, Context.MODE_PRIVATE);
		Float light = Preferences.getFloat(LIGHT, -1);
		adjest.setProgress((int) (light * 100 - 10));// light.

		final CheckBox systemLight = (CheckBox) view
				.findViewById(R.id.checkBox);
		systemLight.setChecked(Preferences.getBoolean(LIGHT_USERSYSTEM, false));

		adjest.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
			/**
			 * 拖动条停止拖动的时候调用
			 */
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// description.setText("拖动停止");
			}

			/**
			 * 拖动条开始拖动的时候调用
			 */
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// description.setText("开始拖动");
			}

			/**
			 * 拖动条进度改变的时候调用
			 */
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {

				// Log.i("lxm", "当前进度:"   progress   "%");
				// Settings.System.putInt(turntest.this.getContentResolver(),
				// Settings.System.SCREEN_BRIGHTNESS, progress   10);
				// int tmpInt = Settings.System.getInt(
				// turntest.this.getContentResolver(),
				// Settings.System.SCREEN_BRIGHTNESS, -1);
				WindowManager.LayoutParams wl = turntest.this.getWindow()
						.getAttributes();
				SharedPreferences Preferences = turntest.this
						.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
				Preferences.edit().putBoolean(LIGHT_USERSYSTEM, false).commit();
				float tmpFloat = (float) (progress   10) / 100;
				Log.i("lxm", "当前进度:"   tmpFloat   "%");
				if (tmpFloat > 0 && tmpFloat <= 1) {
					wl.screenBrightness = tmpFloat;
				}
				turntest.this.getWindow().setAttributes(wl);
				// SharedPreferences Preferences = turntest.this
				// .getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
				Preferences.edit().putFloat(LIGHT, tmpFloat).commit();
				systemLight.setChecked(false);
				Preferences.edit().putBoolean(LIGHT_USERSYSTEM, false).commit();
			}
		});
		// SharedPreferences Preferences = turntest.this.getSharedPreferences(
		// CONFIG, Context.MODE_PRIVATE);
		// Preferences.getBoolean(LIGHT_USERSYSTEM, true);

		systemLight.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (((CheckBox) v).isChecked()) {
					SharedPreferences Preferences = turntest.this
							.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
					Preferences.edit().putBoolean(LIGHT_USERSYSTEM, true)
							.commit();
					int tmpInt = Settings.System.getInt(
							turntest.this.getContentResolver(),
							Settings.System.SCREEN_BRIGHTNESS, -1);
					WindowManager.LayoutParams wl = turntest.this.getWindow()
							.getAttributes();

					float tmpFloat = (float) tmpInt / 255;
					Log.i("lxm", "当前进度:"   tmpFloat   "%");
					if (tmpFloat > 0 && tmpFloat <= 1) {
						wl.screenBrightness = tmpFloat;
					}
					turntest.this.getWindow().setAttributes(wl);
					// adjest.setClickable(false);
					// Log.i("lxm", "true");
				} else {
					SharedPreferences Preferences = turntest.this
							.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
					Preferences.edit().putBoolean(LIGHT_USERSYSTEM, false)
							.commit();
					// Log.i("lxm", "false");
					float tmpFloat = Preferences.getFloat(LIGHT, -1);
					WindowManager.LayoutParams wl = turntest.this.getWindow()
							.getAttributes();
					if (tmpFloat > 0 && tmpFloat <= 1) {
						wl.screenBrightness = tmpFloat;
					}
					turntest.this.getWindow().setAttributes(wl);
					// adjest.setClickable(true);
				}
			}
		});

	}

	public void initReadPopupWindow(Context context) {
		// 加载PopupWindow的布局文件
		LayoutInflater layoutInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = layoutInflater.inflate(R.layout.read_style, null);
		// 加载PopupWindow的媒介布局文件
		View parentView = layoutInflater.inflate(R.layout.main, null);
		// 实例化PopupWindow中的组件
		// TextView titleTextView = (TextView)
		// view.findViewById(R.id.popup_title);
		// ImageView editImg = (ImageView) view.findViewById(R.id.popup_edit);
		// ImageView listenImg = (ImageView)
		// view.findViewById(R.id.popup_listen);

		// SeekBar seekBar = (SeekBar) view.findViewById(R.id.popup_progress);
		// TextView progressTextView = (TextView) view
		// .findViewById(R.id.popup_progress_tv);
		// view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
		// LayoutParams.WRAP_CONTENT));
		// GridView gridView = (GridView) view.findViewById(R.id.popup_grid);
		// GridViewAdapter adapter = new GridViewAdapter(this, mPictures,
		// mTitles);
		// gridView.setAdapter(adapter);
		// gridView.setOnItemClickListener(new ItemClickListener());
		// gridView.setOnItemSelectedListener(new OnItemSelectedListener() {
		/*
		 * (non-Javadoc)
		 * 
		 * @see android.widget.AdapterView.OnItemSelectedListener#onItemSelected
		 * (android.widget.AdapterView, android.view.View, int, long)
		 */
		// @Override
		// public void onItemSelected(AdapterView<?> arg0, View arg1,
		// int arg2, long arg3) {
		// // TODO Auto-generated method stub
		//
		// }
		//
		// /*
		// * (non-Javadoc)
		// *
		// * @see
		// * android.widget.AdapterView.OnItemSelectedListener#onNothingSelected
		// * (android.widget.AdapterView)
		// */
		// @Override
		// public void onNothingSelected(AdapterView<?> arg0) {
		// // TODO Auto-generated method stub
		//
		// }
		// });
		// 声明并实例化PopupWindow
		final PopupWindow popupWindow = new PopupWindow(view,
				LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
		// 为PopupWindow设置弹出的位置
		// popupWindow.showAsDropDown(parentView);

		// popupWindow.setBackgroundDrawable(new BitmapDrawable());
		popupWindow.setFocusable(true);
		popupWindow.setTouchable(true);
		// popupWindow.
		// popupWindow.update();
		// popupWindow.setBackgroundDrawable(new BitmapDrawable());
		popupWindow.setOutsideTouchable(true);// 点击窗口外消失,需要设置背景、焦点、touchable、update
		// popupWindow.set
		popupWindow.setWindowLayoutMode(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		popupWindow.showAtLocation(parentView, Gravity.NO_GRAVITY, 0, 0);
		// popupWindow.setFocusable(true);
		// 这句是为了防止弹出菜单获取焦点之后,点击activity的其他组件没有响应
		// popupWindow.setAnimationStyle(R.style.popup_show_out);
		// popupWindow.setAnimationStyle(android.R.style.Animation_Translucent);
		TextView black = (TextView) view.findViewById(R.id.black_txt);
		black.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (popupWindow != null) {
					popupWindow.dismiss();
				}
			}
		});
		popupWindow.getContentView().findViewById(R.id.main)
				.setOnKeyListener(new OnKeyListener() {

					@Override
					public boolean onKey(View v, int keyCode, KeyEvent event) {
						// TODO Auto-generated method stub
						Log.i("lxm", "key press");
						switch (event.getAction()) {
						case KeyEvent.ACTION_DOWN:
							if (keyCode == KeyEvent.KEYCODE_MENU
									|| keyCode == KeyEvent.KEYCODE_BACK) {
								if (popupWindow != null) {
									popupWindow.dismiss();
								}
							}
							break;
						}
						return false;
					}
				});

		View color = view.findViewById(R.id.color1);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color2);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color3);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color4);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color5);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color6);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color7);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color8);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color9);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color10);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color11);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color12);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color13);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color14);
		color.setOnClickListener(turntest.this);
		color = view.findViewById(R.id.color15);
		color.setOnClickListener(turntest.this);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#dispatchKeyEvent(android.view.KeyEvent)
	 */
	// lxm
	@Override
	public boolean dispatchKeyEvent(KeyEvent event) {
		// TODO Auto-generated method stub
		int keyCode = event.getKeyCode();
		switch (event.getAction()) {
		case KeyEvent.ACTION_DOWN:
			switch (keyCode) {
			case KeyEvent.KEYCODE_VOLUME_UP:
				mPageWidget.abortAnimation();
				mPageWidget.bIsShowNoMore = false;
				mPageWidget.calcCornerXY(mWidth * 1 / 8, mHeight * 1 / 8);
				mPageWidget.settouchpos(mWidth * 1 / 8, mHeight * 1 / 8);
				Log.i("lxm", "setOnTouchListener");
				pagefactory.Draw(mCurPageCanvas, mPageWidget);
				// if (mPageWidget.DragToRight()) {
				try {
					pagefactory.prePage();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				if (pagefactory.isfirstPage()) {
					mPageWidget.bIsShowNoMore = true;
					mPageWidget.invalidate();
					return true;
				}
				pagefactory.Draw(mNextPageCanvas, mPageWidget);
				mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap);
				mPageWidget.invalidate();
				mPageWidget.startAnimation(1200);
				return true;
			case KeyEvent.KEYCODE_VOLUME_DOWN:
				// } else {
				mPageWidget.abortAnimation();
				mPageWidget.bIsShowNoMore = false;
				mPageWidget.calcCornerXY(mWidth * 7 / 8, mHeight * 7 / 8);
				mPageWidget.settouchpos(mWidth * 7 / 8, mHeight * 7 / 8);
				Log.i("lxm", "setOnTouchListener");
				pagefactory.Draw(mCurPageCanvas, mPageWidget);
				try {
					pagefactory.nextPage();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				if (pagefactory.islastPage()) {
					mPageWidget.bIsShowNoMore = true;
					mPageWidget.invalidate();
					return true;
				}
				// return true;
				pagefactory.Draw(mNextPageCanvas, mPageWidget);
				mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap);
				mPageWidget.invalidate();
				mPageWidget.startAnimation(1200);
				// }
				return true;
				// break;

			default:
				break;
			}
			break;
		}
		return super.dispatchKeyEvent(event);
	}

	/**
	 * 利用第三方开源包cpdetector获取文件编码格式
	 * 
	 * @param path
	 *            要判断文件编码格式的源文件的路径
	 * @author huanglei
	 * @version 2012-7-12 14:05
	 */
	public static String getFileEncode(String path) {
		/*
		 * detector是探测器,它把探测任务交给具体的探测实现类的实例完成。
		 * cpDetector内置了一些常用的探测实现类,这些探测实现类的实例可以通过add方法 加进来,如ParsingDetector、
		 * JChardetFacade、ASCIIDetector、UnicodeDetector。
		 * detector按照“谁最先返回非空的探测结果,就以该结果为准”的原则返回探测到的
		 * 字符集编码。使用需要用到三个第三方JAR包:antlr.jar、chardet.jar和cpdetector.jar
		 * cpDetector是基于统计学原理的,不保证完全正确。
		 */
		CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
		/*
		 * ParsingDetector可用于检查HTML、XML等文件或字符流的编码,构造方法中的参数用于
		 * 指示是否显示探测过程的详细信息,为false不显示。
		 */
		detector.add(new ParsingDetector(false));
		/*
		 * JChardetFacade封装了由Mozilla组织提供的JChardet,它可以完成大多数文件的编码
		 * 测定。所以,一般有了这个探测器就可满足大多数项目的要求,如果你还不放心,可以
		 * 再多加几个探测器,比如下面的ASCIIDetector、UnicodeDetector等。
		 */
		detector.add(JChardetFacade.getInstance());// 用到antlr.jar、chardet.jar
		// ASCIIDetector用于ASCII编码测定
		detector.add(ASCIIDetector.getInstance());
		// UnicodeDetector用于Unicode家族编码的测定
		detector.add(UnicodeDetector.getInstance());
		java.nio.charset.Charset charset = null;
		File f = new File(path);
		try {
			charset = detector.detectCodepage(f.toURI().toURL());
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		if (charset != null)
			return charset.name();
		else
			return null;
	}

	public void initFontPopupWindow(Context context) {
		// 加载PopupWindow的布局文件
		LayoutInflater layoutInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = layoutInflater.inflate(R.layout.popup_font_size, null);
		// 加载PopupWindow的媒介布局文件
		View parentView = layoutInflater.inflate(R.layout.main, null);

		final PopupWindow popupWindow = new PopupWindow(view,
				LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
		popupWindow.setFocusable(true);
		popupWindow.setTouchable(true);
		popupWindow.setOutsideTouchable(true);// 点击窗口外消失,需要设置背景、焦点、touchable、update
		// popupWindow.set
		popupWindow.setWindowLayoutMode(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		popupWindow.showAtLocation(parentView, Gravity.NO_GRAVITY, 0, 0);
		// popupWindow.setFocusable(true);
		// 这句是为了防止弹出菜单获取焦点之后,点击activity的其他组件没有响应
		// popupWindow.setAnimationStyle(R.style.popup_show_out);
		popupWindow.setAnimationStyle(android.R.style.Animation_Translucent);
		TextView black = (TextView) view.findViewById(R.id.black_txt);
		black.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (popupWindow != null) {
					popupWindow.dismiss();
				}
			}
		});
		popupWindow.getContentView().findViewById(R.id.main)
				.setOnKeyListener(new OnKeyListener() {

					@Override
					public boolean onKey(View v, int keyCode, KeyEvent event) {
						// TODO Auto-generated method stub
						Log.i("lxm", "key press");
						switch (event.getAction()) {
						case KeyEvent.ACTION_DOWN:
							if (keyCode == KeyEvent.KEYCODE_MENU
									|| keyCode == KeyEvent.KEYCODE_BACK) {
								if (popupWindow != null) {
									popupWindow.dismiss();
								}
							}
							break;
						}
						return false;
					}
				});
		final SeekBar adjest = (SeekBar) view.findViewById(R.id.read_font_size);
		int fontsize = getIntPeizhi(FONT_SIZE, 29);
		adjest.setProgress((int) (fontsize - 14));// light.

		adjest.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
			/**
			 * 拖动条停止拖动的时候调用
			 */
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// description.setText("拖动停止");
			}

			/**
			 * 拖动条开始拖动的时候调用
			 */
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// description.setText("开始拖动");
			}

			/**
			 * 拖动条进度改变的时候调用
			 */
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				PutIntPeizhi(FONT_SIZE, progress   14);
				setfont(progress   14);
			}
		});

		final SeekBar adjest1 = (SeekBar) view
				.findViewById(R.id.read_line_jianju);
		int Line_jianju = getIntPeizhi(LINE_JIANJU, 5);
		adjest1.setProgress((int) (Line_jianju - 2));// light.

		adjest1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
			/**
			 * 拖动条停止拖动的时候调用
			 */
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// description.setText("拖动停止");
			}

			/**
			 * 拖动条开始拖动的时候调用
			 */
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// description.setText("开始拖动");
			}

			/**
			 * 拖动条进度改变的时候调用
			 */
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				PutIntPeizhi(LINE_JIANJU, progress   2);
				setline_jianju(progress   2);
			}
		});
	}

	public int getIntPeizhi(String name, int defValue) {
		// Log.i("lxm", name  "" this.getSharedPreferences(CONFIG,
		// Context.MODE_PRIVATE).getInt(
		// name, defValue));
		return this.getSharedPreferences(CONFIG, Context.MODE_PRIVATE).getInt(
				name, defValue);
	}

	public void PutIntPeizhi(String name, int Value) {
		Log.i("lxm", name   ""   Value);
		SharedPreferences Preferences = turntest.this.getSharedPreferences(
				CONFIG, Context.MODE_PRIVATE);
		Preferences.edit().putInt(name, Value).commit();
	}

	public boolean getBoolPeizhi(String name, boolean defValue) {
		// Log.i("lxm", name  "" this.getSharedPreferences(CONFIG,
		// Context.MODE_PRIVATE).getInt(
		// name, defValue));
		return this.getSharedPreferences(CONFIG, Context.MODE_PRIVATE)
				.getBoolean(name, defValue);
	}

	public void PutBoolPeizhi(String name, boolean Value) {
		Log.i("lxm", name   ""   Value);
		SharedPreferences Preferences = turntest.this.getSharedPreferences(
				CONFIG, Context.MODE_PRIVATE);
		Preferences.edit().putBoolean(name, Value).commit();
	}

	public void initjinduPopupWindow(Context context) {
		// 加载PopupWindow的布局文件
		LayoutInflater layoutInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = layoutInflater.inflate(R.layout.popup_jindu, null);
		// 加载PopupWindow的媒介布局文件
		View parentView = layoutInflater.inflate(R.layout.main, null);

		final PopupWindow popupWindow = new PopupWindow(view,
				LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
		popupWindow.setFocusable(true);
		popupWindow.setTouchable(true);
		popupWindow.setOutsideTouchable(true);// 点击窗口外消失,需要设置背景、焦点、touchable、update
		// popupWindow.set
		popupWindow.setWindowLayoutMode(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		popupWindow.showAtLocation(parentView, Gravity.NO_GRAVITY, 0, 0);
		// popupWindow.setFocusable(true);
		// 这句是为了防止弹出菜单获取焦点之后,点击activity的其他组件没有响应
		// popupWindow.setAnimationStyle(R.style.popup_show_out);
		popupWindow.setAnimationStyle(android.R.style.Animation_Translucent);
		TextView black = (TextView) view.findViewById(R.id.black_txt);
		black.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (popupWindow != null) {
					popupWindow.dismiss();
				}
			}
		});
		popupWindow.getContentView().findViewById(R.id.main)
				.setOnKeyListener(new OnKeyListener() {

					@Override
					public boolean onKey(View v, int keyCode, KeyEvent event) {
						// TODO Auto-generated method stub
						Log.i("lxm", "key press");
						switch (event.getAction()) {
						case KeyEvent.ACTION_DOWN:
							if (keyCode == KeyEvent.KEYCODE_MENU
									|| keyCode == KeyEvent.KEYCODE_BACK) {
								if (popupWindow != null) {
									popupWindow.dismiss();
								}
							}
							break;
						}
						return false;
					}
				});
		final SeekBar adjest = (SeekBar) view
				.findViewById(R.id.read_adjust_jindu);

		// SharedPreferences Preferences = turntest.this.getSharedPreferences(
		// CONFIG, Context.MODE_PRIVATE);
		// Float light = Preferences.getFloat(LIGHT, -1);
		adjest.setProgress(pagefactory.get_jindu_baifen());// light.

		// final CheckBox systemLight = (CheckBox) view
		// .findViewById(R.id.checkBox);
		// systemLight.setChecked(Preferences.getBoolean(LIGHT_USERSYSTEM,
		// false));

		adjest.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
			/**
			 * 拖动条停止拖动的时候调用
			 */
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// description.setText("拖动停止");
			}

			/**
			 * 拖动条开始拖动的时候调用
			 */
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// description.setText("开始拖动");
			}

			/**
			 * 拖动条进度改变的时候调用
			 */
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				//
				set_jindu_baifen(progress);
				// mPageWidget.invalidate();
			}
		});
		// SharedPreferences Preferences = turntest.this.getSharedPreferences(
		// CONFIG, Context.MODE_PRIVATE);
		// Preferences.getBoolean(LIGHT_USERSYSTEM, true);

	}

	private void set_jindu_baifen(int jindu) {
		pagefactory.set_jindu_baifen(jindu);
		pagefactory.Draw(mCurPageCanvas, mPageWidget);
		mPageWidget.setcurBitmaps(mCurPageBitmap);
	}

	private void set_jindu(int jindu) {
		pagefactory.set_jindu(jindu);
		pagefactory.Draw(mCurPageCanvas, mPageWidget);
		mPageWidget.setcurBitmaps(mCurPageBitmap);
	}

	private void show_bookmark() {
		SQLiteDatabase dbSelect = markhelper.getReadableDatabase();
		String col[] = { "begin", "word", "time" };
		Cursor cur = dbSelect.query("markhelper", col, "path = '"   bookPath
				  "'", null, null, null, null);
		Integer num = cur.getCount();
		if (num == 0) {
			show_toast("You have no bookmarks.");

		} else {
			ArrayList<MarkVo> markList = new ArrayList<MarkVo>();
			while (cur.moveToNext()) {
				String s1 = cur.getString(cur.getColumnIndex("word"));
				String s2 = cur.getString(cur.getColumnIndex("time"));
				int b1 = cur.getInt(cur.getColumnIndex("begin"));
				int p = 0;
				int count = 10;
				MarkVo mv = new MarkVo(s1, p, count, b1, s2, bookPath);
				markList.add(mv);
			}
			mDialog = new MarkDialog(this, markList, mHandler,
					R.style.FullHeightDialog);

			mDialog.setCancelable(false);

			mDialog.setTitle("My Bookmarks:");
			mDialog.show();
		}
	}

	public Handler mHandler = new Handler() {
		// 接收子线程发来的消息,同时更新UI
		public void handleMessage(Message msg) {
			int begin = 0;
			switch (msg.what) {
			case 0:
				begin = msg.arg1;
				set_jindu(begin);
				break;
			case 1:
				// pagefactory.setM_mbBufBegin(begin);
				// pagefactory.setM_mbBufEnd(begin);
				// postInvalidateUI();
				break;
			default:
				break;
			}
		}
	};

	private void show_toast(String content) {
		Toast toast = Toast
				.makeText(turntest.this, content, Toast.LENGTH_SHORT);
		toast.setGravity(Gravity.CENTER, 0, 0);
		toast.show();
	}
}

标签: 阅读器 阅读

实例下载地址

android 小说阅读器app源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警