public void handleMessage(Message msg) { switch (msg.what) { case TEXTSET: pagefactory.changBackGround(msg.arg1); pagefactory.onDraw(mCurPageCanvas); mPageWidget.postInvalidate(); break; case OPENMARK: try { mCursor = db.select(); } catch (Exception e) { e.printStackTrace(); } if (mCursor.getCount() > 0) { mCursor.moveToPosition(mCursor.getCount() - 1); String pos = mCursor.getString(2); mCursor.getString(1); pagefactory.setBeginPos(Integer.valueOf(pos)); try { pagefactory.prePage(); } catch (IOException e) { e.printStackTrace(); } pagefactory.onDraw(mNextPageCanvas); mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap); mPageWidget.invalidate(); db.close(); } break; case SAVEMARK: try { db.update(book.id, book.bookname, String.valueOf(msg.arg2)); db.updateSetup(setup.id, String.valueOf(msg.arg1), "0", "0"); // mCursor = db.select(); } catch (Exception e) { e.printStackTrace(); } // System.out.println(mCursor.getCount()); // if (mCursor.getCount() > 0) { // mCursor.moveToPosition(mCursor.getCount()-1); // db.update(book.id, book.bookname, // String.valueOf(msg.arg2),String.valueOf(msg.arg1)); // } else { // db.insert("", String.valueOf(msg.arg2),String.valueOf(msg.arg1)); // } db.close(); break; default: break; } super.handleMessage(msg); }
private void setFontSize(int size) { pagefactory.setFontSize(size); int pos = pagefactory.getCurPostionBeg(); pagefactory.setBeginPos(pos); try { pagefactory.nextPage(); } catch (IOException e) { e.printStackTrace(); } setContentView(mPageWidget); pagefactory.onDraw(mNextPageCanvas); // mPageWidget.setBitmaps(mCurPageBitmap, mCurPageBitmap); mPageWidget.setBitmaps(mNextPageBitmap, mNextPageBitmap); mPageWidget.invalidate(); // mPageWidget.postInvalidate(); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow() .setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Display用于提供屏幕尺寸和分辨率的信息 Display display = getWindowManager().getDefaultDisplay(); int w = display.getWidth(); int h = display.getHeight(); System.out.println(w + "\t" + h); mCurPageBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); // 当前页位图 mNextPageBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); // 下一页位图 mCurPageCanvas = new Canvas(mCurPageBitmap); // 显示当前页位图 mNextPageCanvas = new Canvas(mNextPageBitmap); // 显示下一页位图 pagefactory = new BookPageFactory(w, h); pagefactory.setBgBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.bg)); // 取得传递的参数 Intent intent = getIntent(); String bookid = intent.getStringExtra("bookid"); mContext = this; db = new DbHelper(mContext); try { book = db.getBookInfo(Integer.parseInt(bookid)); setup = db.getSetupInfo(); } catch (Exception e) { e.printStackTrace(); } if (book != null) { pagefactory.setFileName(book.bookname); mPageWidget = new PageWidget(this, w, h); setContentView(mPageWidget); pagefactory.openbook(mBookPath + book.bookname); if (book.bookmark > 0) { whichSize = setup.fontsize; pagefactory.setFontSize(Integer.parseInt(font[setup.fontsize])); pagefactory.setBeginPos(Integer.valueOf(book.bookmark)); try { pagefactory.prePage(); } catch (IOException e) { e.printStackTrace(); } // setContentView(mPageWidget); pagefactory.onDraw(mNextPageCanvas); mPageWidget.setBitmaps(mNextPageBitmap, mNextPageBitmap); // mPageWidget.invalidate(); mPageWidget.postInvalidate(); db.close(); } else { pagefactory.onDraw(mCurPageCanvas); // setContentView(mPageWidget); mPageWidget.setBitmaps(mCurPageBitmap, mCurPageBitmap); } mPageWidget.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent e) { boolean ret = false; if (v == mPageWidget) { if (e.getAction() == MotionEvent.ACTION_DOWN) { mPageWidget.abortAnimation(); mPageWidget.calcCornerXY(e.getX(), e.getY()); if (mPageWidget.isMiddle()) { openOptionsMenu(); return true; } pagefactory.onDraw(mCurPageCanvas); if (mPageWidget.DragToRight()) { try { pagefactory.prePage(); } catch (IOException e1) { e1.printStackTrace(); } if (pagefactory.isfirstPage()) { Toast.makeText(mContext, "已经是第一页", Toast.LENGTH_SHORT).show(); return false; } pagefactory.onDraw(mNextPageCanvas); } else { try { pagefactory.nextPage(); } catch (IOException e1) { e1.printStackTrace(); } if (pagefactory.islastPage()) { Toast.makeText(mContext, "已经是最后一页", Toast.LENGTH_SHORT).show(); return false; } pagefactory.onDraw(mNextPageCanvas); } mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap); } if (mPageWidget.isMiddle()) return true; ret = mPageWidget.doTouchEvent(e); return ret; } return false; } }); } else { Toast.makeText(mContext, "电子书不存在!可能已经删除", Toast.LENGTH_SHORT).show(); BookActivity.this.finish(); } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); mPageWidget = new PageWidget(this); setContentView(mPageWidget); mCurPageBitmap = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888); mNextPageBitmap = Bitmap .createBitmap(480, 800, Bitmap.Config.ARGB_8888); mCurPageCanvas = new Canvas(mCurPageBitmap); mNextPageCanvas = new Canvas(mNextPageBitmap); pagefactory = new BookPageFactory(480, 800);//设置分辨率为480*800 pagefactory.setBgBitmap(BitmapFactory.decodeResource( this.getResources(), R.drawable.bg));//设置背景图片 try { pagefactory.openbook("/sdcard/test.txt");//打开文件 pagefactory.onDraw(mCurPageCanvas);//将文字绘于手机屏幕 } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); Toast.makeText(this, "电子书不存在,请将《test.txt》放在SD卡根目录下", Toast.LENGTH_SHORT).show(); } mPageWidget.setBitmaps(mCurPageBitmap, mCurPageBitmap); mPageWidget.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent e) { // TODO Auto-generated method stub boolean ret=false; if (v == mPageWidget) { if (e.getAction() == MotionEvent.ACTION_DOWN) { //停止动画。与forceFinished(boolean)相反,Scroller滚动到最终x与y位置时中止动画。 mPageWidget.abortAnimation(); //计算拖拽点对应的拖拽角 mPageWidget.calcCornerXY(e.getX(), e.getY()); //将文字绘于当前页 pagefactory.onDraw(mCurPageCanvas); if (mPageWidget.DragToRight()) { //是否从左边翻向右边 try { //true,显示上一页 pagefactory.prePage(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if(pagefactory.isfirstPage())return false; pagefactory.onDraw(mNextPageCanvas); } else { try { //false,显示下一页 pagefactory.nextPage(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if(pagefactory.islastPage())return false; pagefactory.onDraw(mNextPageCanvas); } mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap); } ret = mPageWidget.doTouchEvent(e); return ret; } return false; } }); }