diff --git a/app/build.gradle b/app/build.gradle index 53f5398..70aa3a6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -116,7 +116,7 @@ android { greendao{ - schemaVersion 3 + schemaVersion 4 daoPackage 'com.yzx.webebook.model.gen' targetGenDir 'src/main/java' } @@ -168,4 +168,6 @@ dependencies { //RxJava implementation deps.reactivex.rxandroid implementation deps.reactivex.rxjava2 + + implementation 'es.voghdev.pdfviewpager:library:1.1.2' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9d4e6bb..16cba6b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,8 +12,8 @@ - - + + - + + (),ReadView { Config.APP_NAME = "家校互通(本地)" Config.BASE_URL = mBaseUrl Config.M_URL = mUrl -// User.clearUserInfo() + if (BuildConfig.BUILD_TYPE != "debug") { + User.clearUserInfo() + } startActivity() } btn4.setOnClickListener { @@ -88,9 +90,9 @@ class MainActivity : BaseActivity(),ReadView { } btn7.setOnClickListener { + startActivity() - - mPresenter?.loadCategory("17") +// mPresenter?.loadCategory("17") } /*OkGo.post("https://fileupload.oa.qbjjyyun.net/edufile/fileUpload") diff --git a/app/src/main/java/com/yzx/webebook/activity/HomeActivity.kt b/app/src/main/java/com/yzx/webebook/activity/HomeActivity.kt index 1dba326..47b2a7d 100644 --- a/app/src/main/java/com/yzx/webebook/activity/HomeActivity.kt +++ b/app/src/main/java/com/yzx/webebook/activity/HomeActivity.kt @@ -15,10 +15,8 @@ import androidx.recyclerview.widget.GridLayoutManager import com.allenliu.versionchecklib.v2.AllenVersionChecker import com.allenliu.versionchecklib.v2.builder.UIData import com.allenliu.versionchecklib.v2.callback.CustomDownloadingDialogListener -import com.blankj.utilcode.util.AppUtils -import com.blankj.utilcode.util.NetworkUtils -import com.blankj.utilcode.util.SPUtils -import com.blankj.utilcode.util.StringUtils +import com.blankj.utilcode.constant.PermissionConstants +import com.blankj.utilcode.util.* import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.lzy.okgo.OkGo @@ -107,11 +105,29 @@ class HomeActivity : BaseActivity>() { //请求权限 - ActivityCompat.requestPermissions( - this, - PERMISSIONS, - PERMISSIONS_REQUEST_STORAGE - ) +// ActivityCompat.requestPermissions( +// this, +// PERMISSIONS, +// PERMISSIONS_REQUEST_STORAGE +// ) + + PermissionUtils.permissionGroup(PermissionConstants.STORAGE) + .rationale { activity, shouldRequest -> + + }.callback(object :PermissionUtils.FullCallback{ + override fun onGranted(granted: MutableList) { + LogUtils.d("权限通过",granted) + } + + override fun onDenied( + deniedForever: MutableList, + denied: MutableList + ) { + LogUtils.d("权限拒绝",denied) + } + + }).theme { activity -> ScreenUtils.setFullScreen(activity) } + .request() } private val PERMISSIONS_REQUEST_STORAGE = 1 diff --git a/app/src/main/java/com/yzx/webebook/activity/PDFViewActivity.kt b/app/src/main/java/com/yzx/webebook/activity/PDFViewActivity.kt new file mode 100644 index 0000000..17112b8 --- /dev/null +++ b/app/src/main/java/com/yzx/webebook/activity/PDFViewActivity.kt @@ -0,0 +1,162 @@ +package com.yzx.webebook.activity + +import android.content.Context +import android.os.PowerManager +import android.os.PowerManager.WakeLock +import androidx.viewpager.widget.ViewPager +import com.blankj.utilcode.util.NumberUtils +import com.yzx.webebook.R +import com.yzx.webebook.activity.base.BaseActivity +import com.yzx.webebook.model.bean.BookRecordBean +import com.yzx.webebook.model.bean.CollBookBean +import com.yzx.webebook.model.local.BookRepository +import com.yzx.webebook.presenter.ReadPresenter +import com.yzx.webebook.presenter.ReadView +import com.yzx.webebook.widget.YzxPDFViewPager +import kotlinx.android.synthetic.main.activity_pdf_view.* + +/** + * pdf 预览页面 + */ +class PDFViewActivity : BaseActivity(), ReadView { + + private var mBookRecord: BookRecordBean? = null + private var mCollBook: CollBookBean? = null + private var mRealBookId: String = "" + private var mReadTaskId: String = "" + private var mBookId: String = "" + var currPage = 0 + var total = 0 + var oldPosition = 0 + + //控制屏幕常亮 + private var mWakeLock: WakeLock? = null + + override val inflateId: Int + get() = R.layout.activity_pdf_view + + override fun initView() { + mBookId = intent.getStringExtra("book_id") ?: "" + mReadTaskId = intent.getStringExtra("read_task_id") ?: "" + mRealBookId = intent.getStringExtra("real_book_id") ?: "" + + mCollBook = BookRepository.getInstance().getCollBook(mBookId) + + mCollBook.apply { + loadPdf() + } + + } + + private fun loadPdf() { + val pdf = YzxPDFViewPager(this, mCollBook?.cover ?: "") + pdfView.addView(pdf) + + total = pdf.adapter?.count ?: 0 + btnLeft.setOnClickListener { + if (currPage > 0) { + pdf.currentItem = --currPage + } + } + + btnRight.setOnClickListener { + if (currPage < total - 1) { + pdf.currentItem = ++currPage + } + } + prepareBook() + + pdf.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { + override fun onPageScrollStateChanged(state: Int) { + + } + + override fun onPageScrolled( + position: Int, + positionOffset: Float, + positionOffsetPixels: Int + ) { + + } + + override fun onPageSelected(position: Int) { + currPageTv.text = "${position + 1}" + percentTv.text = "${getPercent(position.toFloat(), total.toFloat())}%" + mBookRecord?.pagePos = position + } + + }) + val pos = mBookRecord?.pagePos?:0; + pdf.currentItem =pos + currPage = pos + } + + /** + * 初始化书籍 + */ + private fun prepareBook() { + mBookRecord = BookRepository.getInstance() + .getBookRecord(mCollBook!!._id) + if (mBookRecord == null) { + mBookRecord = BookRecordBean() + mBookRecord?.bookId = mBookId + totalPageTv.text = "$total" + currPageTv.text = "${currPage + 1}" + percentTv.text = "${getPercent(1f, total.toFloat())}%" + oldPosition = 0 + } else { + oldPosition = mBookRecord!!.pagePos + totalPageTv.text = "$total" + currPageTv.text = "${mBookRecord!!.pagePos + 1}" + percentTv.text = + "${getPercent((mBookRecord!!.pagePos + 1).toFloat(), total.toFloat())}%" + } + } + + override fun initData() { + //初始化屏幕常亮类 + + //初始化屏幕常亮类 + val pm = + getSystemService(Context.POWER_SERVICE) as PowerManager + mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "ireader:keep bright") + + } + + private fun getPercent(curr: Float, total: Float): String { + val percent = NumberUtils.format(curr * 100f / total, 2) + return "$percent" + } + + override fun initPresenter(): ReadPresenter = ReadPresenter(this) + override fun onResume() { + super.onResume() + mWakeLock?.acquire() + } + override fun onPause() { + super.onPause() + mWakeLock?.release() + //存储到数据库 + if (mBookRecord != null) { + BookRepository.getInstance() + .saveBookRecord(mBookRecord) + if (mBookRecord!!.pagePos > oldPosition) { + mPresenter?.updateReadProgress( + mRealBookId, mReadTaskId, getPercent( + (mBookRecord!!.pagePos + 1).toFloat(), + total.toFloat() + ) + ) + } + } + } + + override fun finishChapter() { + } + + override fun errorChapter() { + } + + override fun showCategory(localId: String?) { + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yzx/webebook/activity/ReadActivity.java b/app/src/main/java/com/yzx/webebook/activity/ReadActivity.java index 9accc49..bc481cb 100644 --- a/app/src/main/java/com/yzx/webebook/activity/ReadActivity.java +++ b/app/src/main/java/com/yzx/webebook/activity/ReadActivity.java @@ -120,6 +120,9 @@ public class ReadActivity extends BaseActivity implements ReadVie private boolean isRegistered = false; private String mBookId; + private String mRealBookId; + private String mReadTaskId; + private float lastProgress = 0f; private Handler mHandler = new Handler() { @@ -216,6 +219,8 @@ public class ReadActivity extends BaseActivity implements ReadVie @Override public void initData() { String id = getIntent().getStringExtra("book_id"); + mReadTaskId = getIntent().getStringExtra("read_task_id"); + mRealBookId = getIntent().getStringExtra("real_book_id"); loadBookData(id); } @@ -280,7 +285,7 @@ public class ReadActivity extends BaseActivity implements ReadVie } private void saveBookInfo() { - if(mCollBook!=null){ + if (mCollBook != null) { mCollBook.setLastRead(StringUtils. dateConvert(System.currentTimeMillis(), Constant.FORMAT_BOOK_DATE)); @@ -331,7 +336,15 @@ public class ReadActivity extends BaseActivity implements ReadVie @Override public void onPageChange(int pos) { mSbChapterProgress.post( - () -> mSbChapterProgress.setProgress(pos) + () -> { + mSbChapterProgress.setProgress(pos); + int max = mSbChapterProgress.getMax() + 1; + float progress = (pos + 1) * 1.0f / max; + if (progress > 0 && progress > lastProgress) { + lastProgress = progress; + + } + } ); } } @@ -653,6 +666,9 @@ public class ReadActivity extends BaseActivity implements ReadVie saveBookInfo(); mPageLoader.saveRecord(); } + if(getMPresenter()!=null && mPageLoader!=null){ + getMPresenter().updateReadProgress(mRealBookId, mReadTaskId, String.valueOf(mPageLoader.getPercent())); + } } @Override diff --git a/app/src/main/java/com/yzx/webebook/activity/WebActivity.kt b/app/src/main/java/com/yzx/webebook/activity/WebActivity.kt index ea70c97..8045fba 100644 --- a/app/src/main/java/com/yzx/webebook/activity/WebActivity.kt +++ b/app/src/main/java/com/yzx/webebook/activity/WebActivity.kt @@ -440,7 +440,7 @@ class YzxJavascriptInterface(var ctx: Activity) { * 保存用户信息 */ @JavascriptInterface - fun saveUserInfo(json:String){ + fun saveUserInfo(json: String) { val resultType = object : TypeToken() {}.type val gson = Gson() val user = gson.fromJson(json, resultType) @@ -448,17 +448,17 @@ class YzxJavascriptInterface(var ctx: Activity) { } @JavascriptInterface - fun saveUnitCount(count:Int){ + fun saveUnitCount(count: Int) { User.saveUnitCount(count) } @JavascriptInterface - fun toHome(){ + fun toHome() { ctx.startActivity() } @JavascriptInterface - fun logout(){ + fun logout() { val sp = SPUtils.getInstance() sp.remove("user_name") sp.remove("user_id") @@ -478,8 +478,8 @@ class YzxJavascriptInterface(var ctx: Activity) { } @JavascriptInterface - fun readPage(bookTaskId:String){ - val presenter = ReadPresenter(object :ReadView{ + fun readPage(bookTaskId: String) { + val presenter = ReadPresenter(object : ReadView { override fun finishChapter() { } @@ -490,9 +490,43 @@ class YzxJavascriptInterface(var ctx: Activity) { override fun showCategory(localId: String?) { val collBook = BookRepository.getInstance().getCollBook(localId) - if(collBook.cover.endsWith(".txt")){ + if (collBook.cover.endsWith(".txt")) { ctx.startActivity("book_id" to localId) - }else{ + } else { + ToastUtils.showLong("暂不支持该格式预览!") + } + } + + }) + presenter.loadCategory(bookTaskId) + } + + @JavascriptInterface + fun readPage(bookTaskId: String, readTaskId: String) { + val presenter = ReadPresenter(object : ReadView { + override fun finishChapter() { + + } + + override fun errorChapter() { + + } + + override fun showCategory(localId: String?) { + val collBook = BookRepository.getInstance().getCollBook(localId) + if (collBook.cover.endsWith(".txt")) { + ctx.startActivity( + "book_id" to localId, + "read_task_id" to readTaskId, + "real_book_id" to bookTaskId + ) + } else if (collBook.cover.endsWith(".pdf")) { + ctx.startActivity( + "book_id" to localId, + "read_task_id" to readTaskId, + "real_book_id" to bookTaskId + ) + } else { ToastUtils.showLong("暂不支持该格式预览!") } } diff --git a/app/src/main/java/com/yzx/webebook/model/bean/BookCount.java b/app/src/main/java/com/yzx/webebook/model/bean/BookCount.java new file mode 100644 index 0000000..96de437 --- /dev/null +++ b/app/src/main/java/com/yzx/webebook/model/bean/BookCount.java @@ -0,0 +1,38 @@ +package com.yzx.webebook.model.bean; + +import org.greenrobot.greendao.annotation.Entity; +import org.greenrobot.greendao.annotation.Id; +import org.greenrobot.greendao.annotation.Generated; + +@Entity +public class BookCount { + @Id + private String _id; // 本地书籍中,path 的 md5 值作为本地书籍的 id + private int total; + + @Generated(hash = 433479827) + public BookCount(String _id, int total) { + this._id = _id; + this.total = total; + } + + @Generated(hash = 2056164259) + public BookCount() { + } + + public int getTotal() { + return total; + } + + public String get_id() { + return _id; + } + + public void set_id(String _id) { + this._id = _id; + } + + public void setTotal(int total) { + this.total = total; + } +} diff --git a/app/src/main/java/com/yzx/webebook/model/bean/ChapterPageCount.java b/app/src/main/java/com/yzx/webebook/model/bean/ChapterPageCount.java new file mode 100644 index 0000000..f5b48c3 --- /dev/null +++ b/app/src/main/java/com/yzx/webebook/model/bean/ChapterPageCount.java @@ -0,0 +1,52 @@ +package com.yzx.webebook.model.bean; + +import org.greenrobot.greendao.annotation.Entity; +import org.greenrobot.greendao.annotation.Id; +import org.greenrobot.greendao.annotation.Generated; +import org.greenrobot.greendao.annotation.Index; + +@Entity +public class ChapterPageCount { + @Id + private String _id; // 本地书籍中,path 的 md5 值作为本地书籍的 id + private int total; + @Index + private String book_id; + + @Generated(hash = 774780221) + public ChapterPageCount(String _id, int total, String book_id) { + this._id = _id; + this.total = total; + this.book_id = book_id; + } + + @Generated(hash = 876465118) + public ChapterPageCount() { + } + + public void setTotal(int total) { + this.total = total; + } + + public void set_id(String _id) { + this._id = _id; + } + + public void setBook_id(String book_id) { + this.book_id = book_id; + } + + public int getTotal() { + return total; + } + + public String get_id() { + return _id; + } + + public String getBook_id() { + return book_id; + } + + +} diff --git a/app/src/main/java/com/yzx/webebook/model/local/LocalRepository.java b/app/src/main/java/com/yzx/webebook/model/local/LocalRepository.java index 9c196be..a9c5ea7 100644 --- a/app/src/main/java/com/yzx/webebook/model/local/LocalRepository.java +++ b/app/src/main/java/com/yzx/webebook/model/local/LocalRepository.java @@ -3,7 +3,11 @@ package com.yzx.webebook.model.local; import com.google.gson.Gson; import com.yzx.webebook.model.bean.AuthorBean; +import com.yzx.webebook.model.bean.BookCount; +import com.yzx.webebook.model.bean.ChapterPageCount; import com.yzx.webebook.model.bean.DownloadTaskBean; +import com.yzx.webebook.model.gen.BookCountDao; +import com.yzx.webebook.model.gen.ChapterPageCountDao; import com.yzx.webebook.model.gen.DaoSession; import org.greenrobot.greendao.Property; @@ -74,4 +78,39 @@ public class LocalRepository implements SaveDbHelper,GetDbHelper,DeleteDbHelper{ public void saveDownloadTask(DownloadTaskBean bean) { } + + @Override + public void saveBookCount(BookCount bookCount) { + mSession.getBookCountDao().insertOrReplaceInTx(bookCount); + } + + @Override + public int getBookCount(String id) { + + BookCount list = mSession.getBookCountDao() + .queryBuilder() + .where(BookCountDao.Properties._id.eq(id)) + .unique(); + if(list!=null){ + return list.getTotal(); + } + return 0; + } + + @Override + public void saveChapterCount(List list) { + mSession.getChapterPageCountDao().insertOrReplaceInTx(list); + } + + @Override + public List getChapterCount(String book_id) { + List list = mSession.getChapterPageCountDao() + .queryBuilder() + .where(ChapterPageCountDao.Properties.Book_id.eq(book_id)) + .list(); + if(list!=null && list.size()>0){ + return list; + } + return new ArrayList(); + } } diff --git a/app/src/main/java/com/yzx/webebook/model/local/SaveDbHelper.java b/app/src/main/java/com/yzx/webebook/model/local/SaveDbHelper.java index 67772c6..71f039b 100644 --- a/app/src/main/java/com/yzx/webebook/model/local/SaveDbHelper.java +++ b/app/src/main/java/com/yzx/webebook/model/local/SaveDbHelper.java @@ -3,6 +3,8 @@ package com.yzx.webebook.model.local; import com.yzx.webebook.model.bean.AuthorBean; +import com.yzx.webebook.model.bean.BookCount; +import com.yzx.webebook.model.bean.ChapterPageCount; import com.yzx.webebook.model.bean.DownloadTaskBean; import java.util.List; @@ -15,4 +17,12 @@ public interface SaveDbHelper { void saveAuthors(List beans); /*************DownloadTask*********************/ void saveDownloadTask(DownloadTaskBean bean); + + void saveBookCount(BookCount bookCount); + + int getBookCount(String id); + + void saveChapterCount(List list); + + List getChapterCount(String book_id); } diff --git a/app/src/main/java/com/yzx/webebook/presenter/ReadPresenter.java b/app/src/main/java/com/yzx/webebook/presenter/ReadPresenter.java index e36d798..5ff7a17 100644 --- a/app/src/main/java/com/yzx/webebook/presenter/ReadPresenter.java +++ b/app/src/main/java/com/yzx/webebook/presenter/ReadPresenter.java @@ -60,7 +60,7 @@ public class ReadPresenter extends BasePresenter { Gson gson = new Gson(); BaseBean bean = gson.fromJson(response.body(), new TypeToken>() { }.getType()); - if ("txt".equals(bean.getData().getFile_type())) { + if ("txt".equals(bean.getData().getFile_type()) || "pdf".equals(bean.getData().getFile_type().toLowerCase())) { downloadBook(bean.getData(), bookTaskId); } else { Book book = bean.getData(); @@ -142,4 +142,30 @@ public class ReadPresenter extends BasePresenter { public void loadChapter(String bookId, List bookChapterList) { } + + public void updateReadProgress(String bookId,String readTaskId,String progress){ + User user = User.Companion.getUser(); + String url = Config.INSTANCE.getBASE_URL() + "/parent/readTask/updateReadProgress"; + HttpHeaders headers = new HttpHeaders(); + headers.put("phone", user.getPhone()); + headers.put("token", user.getToken()); + OkGo.post(url) + .tag(this) + .params("id", bookId) + .params("read_task_id", readTaskId) + .params("read_progress", progress) + .headers(headers) + .execute(new StringCallback() { + + @Override + public void onSuccess(Response response) { + + } + + @Override + public void onError(Response response) { + super.onError(response); + } + }); + } } diff --git a/app/src/main/java/com/yzx/webebook/widget/YzxPDFViewPager.kt b/app/src/main/java/com/yzx/webebook/widget/YzxPDFViewPager.kt new file mode 100644 index 0000000..d3eab06 --- /dev/null +++ b/app/src/main/java/com/yzx/webebook/widget/YzxPDFViewPager.kt @@ -0,0 +1,26 @@ +package com.yzx.webebook.widget + +import android.content.Context +import android.view.MotionEvent +import es.voghdev.pdfviewpager.library.PDFViewPager + +class YzxPDFViewPager(context:Context,path:String):PDFViewPager(context,path){ + + + override fun setCurrentItem(item: Int, smoothScroll: Boolean) { + super.setCurrentItem(item, false) + } + + override fun setCurrentItem(item: Int) { + super.setCurrentItem(item,false) + } + + override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean { + return false + } + + override fun onTouchEvent(ev: MotionEvent?): Boolean { + return false + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yzx/webebook/widget/page/LocalPageLoader.java b/app/src/main/java/com/yzx/webebook/widget/page/LocalPageLoader.java index b8fb93c..541038e 100644 --- a/app/src/main/java/com/yzx/webebook/widget/page/LocalPageLoader.java +++ b/app/src/main/java/com/yzx/webebook/widget/page/LocalPageLoader.java @@ -41,7 +41,7 @@ import io.reactivex.disposables.Disposable; public class LocalPageLoader extends PageLoader { private static final String TAG = "LocalPageLoader"; //默认从文件中获取数据的长度 - private final static int BUFFER_SIZE = 10 * 1024; + private final static int BUFFER_SIZE = 50 * 1024; //没有标题的时候,每个章节的最大长度 private final static int MAX_LENGTH_WITH_NO_CHAPTER = 10 * 1024; diff --git a/app/src/main/java/com/yzx/webebook/widget/page/PageLoader.java b/app/src/main/java/com/yzx/webebook/widget/page/PageLoader.java index af6683c..d65a3aa 100644 --- a/app/src/main/java/com/yzx/webebook/widget/page/PageLoader.java +++ b/app/src/main/java/com/yzx/webebook/widget/page/PageLoader.java @@ -9,16 +9,22 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Typeface; import android.text.TextPaint; +import android.util.Log; import androidx.core.content.ContextCompat; +import com.blankj.utilcode.util.NumberUtils; +import com.yzx.webebook.model.bean.BookCount; import com.yzx.webebook.model.bean.BookRecordBean; +import com.yzx.webebook.model.bean.ChapterPageCount; import com.yzx.webebook.model.bean.CollBookBean; import com.yzx.webebook.model.local.BookRepository; +import com.yzx.webebook.model.local.LocalRepository; import com.yzx.webebook.model.local.ReadSettingManager; import com.yzx.webebook.utils.Constant; import com.yzx.webebook.utils.IOUtils; +import com.yzx.webebook.utils.MD5Utils; import com.yzx.webebook.utils.RxUtils; import com.yzx.webebook.utils.ScreenUtils; import com.yzx.webebook.utils.StringUtils; @@ -391,6 +397,8 @@ public abstract class PageLoader { // 重新获取指定页面 mCurPage = mCurPageList.get(mCurPage.position); + +// getTotalPage(true); } mPageView.drawCurPage(false); @@ -724,6 +732,44 @@ public abstract class PageLoader { mPageView.invalidate(); } + private int getTotalPage() { + return getTotalPage(false); + } + + private int getTotalPage(boolean update) { +// int total = LocalRepository.getInstance().getBookCount(mCollBook.get_id()); +// if (total > 0 && !update) { +// return total; +// } + + int size = 0; + List chapterPageCountsList = new ArrayList<>(); + for (TxtChapter txtChapter : mChapterList) { + int index = mChapterList.indexOf(txtChapter); + + try { + List list = loadPageList(index); + size += list.size(); + chapterPageCountsList.add(new ChapterPageCount(MD5Utils.strToMd5By16(txtChapter.title), list.size(), mCollBook.get_id())); + } catch (Exception e) { + e.printStackTrace(); + } + } +// LocalRepository.getInstance().saveChapterCount(chapterPageCountsList); +// LocalRepository.getInstance().saveBookCount(new BookCount(mCollBook.get_id(), size)); + return size; + } + + public String getPercent(){ + float currPercent = (mCurPage.position + 1.0f) / mCurPageList.size(); + float step = 1.0f / mChapterList.size(); + float currChapPercent = 1.0f * mCurChapterPos * step; +// String percent = (mCurPage.position + 1) + "/" + mCurPageList.size(); + String percent = NumberUtils.format((currChapPercent + (currPercent * step))*100f, 2); + + return percent; + } + private void drawBackground(Bitmap bitmap, boolean isUpdate) { Canvas canvas = new Canvas(bitmap); int tipMarginHeight = ScreenUtils.dpToPx(3); @@ -750,8 +796,7 @@ public abstract class PageLoader { float y = mDisplayHeight - mTipPaint.getFontMetrics().bottom - tipMarginHeight; // 只有finish的时候采用页码 if (mStatus == STATUS_FINISH) { - String percent = (mCurPage.position + 1) + "/" + mCurPageList.size(); - canvas.drawText(percent, mMarginWidth, y, mTipPaint); + canvas.drawText(getPercent() + "%", mMarginWidth, y, mTipPaint); } } } else { diff --git a/app/src/main/res/layout/activity_pdf_view.xml b/app/src/main/res/layout/activity_pdf_view.xml new file mode 100644 index 0000000..2bfe1b3 --- /dev/null +++ b/app/src/main/res/layout/activity_pdf_view.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_read.xml b/app/src/main/res/layout/activity_read.xml index e8c3675..281c9ed 100644 --- a/app/src/main/res/layout/activity_read.xml +++ b/app/src/main/res/layout/activity_read.xml @@ -35,7 +35,7 @@ android:paddingRight="12dp" android:paddingTop="8dp" android:text="1/12" - android:textColor="@color/white" + android:textColor="@color/black" android:visibility="gone" /> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2cf9c7f..72f7b78 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -129,4 +129,13 @@