eschao / android-PageFlip

3D Style Page Flip on Android
Apache License 2.0
1.74k stars 262 forks source link

适配 api15 成功 #22

Closed Huskyyy closed 6 years ago

Huskyyy commented 7 years ago

手机参数: API 15;480x800;中兴。。。 修改过程:

  1. 把 drawable 目录下的图片分别放到 hdpi、xhdpi、xxhdpi 目录下。
  2. 源码还没细看,所以把 #19 中提到的问题用很粗鲁的方式修改了,该修改方法并不可靠。如下

    public void set(int w, int h, int maxCached) {
        pageWidth = w;
        pageHeight = h;
    
        int newIndex = LARGE_BG;
        if ((w <= 480 && h <= 854) ||
            (w <= 854 && h <= 480)) {
            mBGSizeIndex = SMALL_BG;
        }
        else if ((w <= 800 && h <= 1280) ||
                 (h <= 800 && w <= 1280)) {
            mBGSizeIndex = MEDIUM_BG;
        } else {
            mBGSizeIndex = LARGE_BG;
        }
    
        mIsLandscape = w > h;
    
        if (maxCached != mQueueMaxSize) {
            mQueueMaxSize = maxCached;
        }
    
        if (newIndex != mBGSizeIndex) {
    //            mBGSizeIndex = newIndex;
            synchronized (this) {
                cleanQueue();
                notify();
            }
        }
    }
  3. 参考 android_page_curl 中的一部分逻辑,即计算最邻近的 2 的指数部分,修改了 createBitmap 的宽高参数。

说明: 1 和 2 主要是为了节省内存,担心老手机带不动,3 是因为刚开始在手机上调试的时候,图片加载不出来,故尝试使用该方法。没想到居然成了==。

eschao commented 7 years ago

看了下,2的确有点问题,前面应该都是赋值给newIndex的,我抽空改改,多谢