1、基于Android平台的手机电子书阅读器代码汇总基于Android平台的手机电子书阅读器代码 package com.lrc.view;/* * 书籍阅读 */import java.io.IOException;import java.lang.reflect.Array;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Vector;import java.uti
2、l.regex.Matcher;import java.util.regex.Pattern;import com.lrc.R;import com.lrc.bll.BookPageFactory;import com.lrc.bll.DbDataOperation;import com.lrc.bll.DbTags;import com.lrc.bll.PageWidget;import com.lrc.util.ArrayUtil;import com.lrc.util.BgUtil;import com.lrc.util.MathUtil;import com.lrc.util.Time
3、Util;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentResolver;import android.content.ContentValues;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color
4、;import .Uri;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.Menu;import android.view.MotionEvent;impo
5、rt android.view.View;import android.view.View.OnClickListener;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;impor
6、t android.widget.EditText;import android.widget.GridView;import android.widget.ImageButton;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.ProgressBar;import android.widget.SeekBar;import android.widget.SimpleAdapter;import android.widget.TextView;import an
7、droid.widget.SeekBar.OnSeekBarChangeListener;import android.widget.Toast;public class BookReadActivity extends Activity private PageWidget mPageWidget; Bitmap mCurPageBitmap, mNextPageBitmap; Canvas mCurPageCanvas, mNextPageCanvas; public static BookPageFactory pagefactory; int screenWidth ,screenHe
8、ight; int bookId; String bookPath,bookName,bookProgress; private int bookBeginPosition; /db private ContentResolver resolver; /tabMenu public final static int TITLE_USING_OFTEN = 0; public final static int TITLE_TOOLS = 1; public final static int MENU_FONT_SIZE = 0; public final static int MENU_READ
9、_THEME = 1; public final static int MENU_BRIGHTNESS_CONTROL = 2; public final static int MENU_FLIP_OVER = 3; public final static int MENU_JUMP = 4; public final static int MENU_SEARCH = 5; public final static int MENU_PRE_CHAPTER = 6; public final static int MENU_NEXT_CHAPTER= 7; public final static
10、 int MENU_CUSTOM_THEME = 0; public final static int MENU_AUDIO_BOOK = 1; public final static int MENU_BOOK_CHAPTER = 2; public final static int MENU_BOOK_CODE = 3; public final static int MENU_BOOK_MARK = 4; public final static int MENU_SETTING = 5; public final static int MENU_SHARE = 6; public fin
11、al static int MENU_BACK = 7; TabMenu.MenuBodyAdapter bodyAdapter=new TabMenu.MenuBodyAdapter2; TabMenu.MenuTitleAdapter titleAdapter; TabMenu tabMenu; int selTitle=0; PopupWindow popupWindow; /定义每项分页栏的内容 String title1BodyName , title2BodyName; int title1BodyIcon , title2BodyIcon; private SeekBar sbF
12、ontSize,sbBrightnessControl,sbJump; /menu jump private TextView tvCurrentProgress ; private ImageButton ibtnJumpUp,ibtnJumpDown; /flip over private Handler readHandler = new Handler(); private FlipOverRunnable flipOverRunnable = new FlipOverRunnable(); private boolean isRead = true; /menu custom the
13、me private SeekBar redForegroundSeekBar,greenForegroundSeekBar,blueForegroundSeekBar, redBackgroundSeekBar,greenBackgroundSeekBar,blueBackgroundSeekBar; int currentProgress; private TextView fontColorTxt,backgroundColorTxt,themeStyleTxt ; private int redForegoundProgress,greenForegroundProgress,blue
14、ForegroundProgress, redBackgoundProgress,greenBackgroundProgress,blueBackgroundProgress; private String foreColor,foreR=00,foreG=00,foreB=00,backColor,backR=00,backG=00,backB=00; private int currentForeColorId,currentBackColorId; /chapter Pattern pattern = Ppile(第1.+章1.+); Matcher matcher; List chap
15、terName = new ArrayList(); List chapterBeginPositions = new ArrayList(); Vector lines; int chapterNum = 0; private AlertDialog chapterDialog; private String currentChapterName = wu; private int currentBeginPosition = 0; Handler chapterHandler = new Handler() Override public void handleMessage(Messag
16、e msg) super.handleMessage(msg); if(msg.what = 0) / updateView(); showChapterDialog(); else if(msg.what = 1) chapterDialog.setMessage(正在提取章节,请稍后.n已发现章节:+chapterNum+ +currentChapterName); else if(msg.what = 2) mPageWidget.invalidate(); ; /pre and next chapter private String currentChapter; private in
17、t currentChapterIndex; private boolean preOrNext = true; Handler preHandler = new Handler() Override public void handleMessage(Message msg) super.handleMessage(msg); for(int i=0;i,currentChapterIndex+); break; if(currentChapterIndex=0) new AlertDialog.Builder(BookReadActivity.this).setTitle(提示).setM
18、essage(已是第一章!).setPositiveButton(确定, null).show(); else pagefactory.setM_mbBufBegin(chapterBeginPositions.get(currentChapterIndex-1); updateView(); ; Handler nextHandler = new Handler() Override public void handleMessage(Message msg) super.handleMessage(msg); for(int i=0;i,currentChapterIndex+); bre
19、ak; if(currentChapterIndex=(chapterName.size()-1) new AlertDialog.Builder(BookReadActivity.this).setTitle(提示).setMessage(已是最后一章!).setPositiveButton(确定, null).show(); else pagefactory.setM_mbBufBegin(chapterBeginPositions.get(currentChapterIndex+1); updateView(); ; Override public void onCreate(Bundl
20、e savedInstanceState) super.onCreate(savedInstanceState); resolver = getContentResolver(); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); mPageWidget = new PageWidget(this); setContentView(mP
21、ageWidget); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels; mCurPageBitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888); mNextPageBitmap = Bitmap .createBitmap(
22、screenWidth, screenHeight, Bitmap.Config.ARGB_8888); mCurPageCanvas = new Canvas(mCurPageBitmap); mNextPageCanvas = new Canvas(mNextPageBitmap); pagefactory = new BookPageFactory(screenWidth, screenHeight); pagefactory.setBgBitmap(BgUtil.getSuitableBg(this,screenWidth,screenHeight,R.drawable.read_bg
23、_3); try bookPath = getIntent().getExtras().getString(DbTags.FIELD_BOOK_PATH); bookName = getIntent().getExtras().getString(DbTags.FIELD_BOOK_NAME); bookId = getIntent().getExtras().getInt(DbTags.FIELD_BOOK_ID); bookProgress = getIntent().getExtras().getString(DbTags.FIELD_BOOK_PROGRESS); bookBeginP
24、osition = getIntent().getExtras().getInt(DbTags.FIELD_BOOK_BEGIN_POSITION); pagefactory.openbook(bookPath); if(bookProgress=null|bookProgress.equals(onlyRead) pagefactory.onDraw(mCurPageCanvas); System.out.println(1); else if(bookProgress.equals(begin) pagefactory.setM_mbBufBegin(getIntent().getIntE
25、xtra(begin, 0); updateView(); System.out.println(2); else pagefactory.setM_mbBufBegin(bookBeginPosition); System.out.println(3); updateView(); catch (IOException e1) e1.printStackTrace(); Toast.makeText(this, 电子书不存在!, Toast.LENGTH_SHORT).show(); mPageWidget.setBitmaps(mCurPageBitmap, mCurPageBitmap)
26、; mPageWidget.setOnTouchListener(new OnTouchListener() public boolean onTouch(View v, MotionEvent e) boolean ret=false; if(popupWindow=null|!popupWindow.isShowing() if (v = mPageWidget) if (e.getAction() = MotionEvent.ACTION_DOWN) mPageWidget.abortAnimation(); mPageWidget.calcCornerXY(e.getX(), e.ge
27、tY(); pagefactory.onDraw(mCurPageCanvas); if (mPageWidget.DragToRight() try pagefactory.prePage(); catch (IOException e1) e1.printStackTrace(); if(pagefactory.isfirstPage() / Toast.makeText(BookReadActivity.this, 已到第一页!, 200).show(); return false; pagefactory.onDraw(mNextPageCanvas); else try pagefactory.nextPage(); catch (IOException e1) e1.printStackTrace(); if(pagefactory.islastPage() / Toast.makeText(BookReadActivity.this, 已到最后一页!, 200).show(); re
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1