Bitmap too large to be uploaded into a texture


從手機相冊里面顯示圖片,但是發現有的圖片能顯示有的圖片不能顯示,路徑都是對的,程序也沒提示任何錯誤。
后來通過看日志發現error message: Bitmap too large to be uploaded into a texture (4208x3120, max=4096x4096):
Bitmap too large to be uploaded into a texture 解決方法 - chy2z - 黑暗行動
 
經過查找資料是因為當開啟硬件加速的時候,GPU對於openglRender 有一個限制,這個不同的手機會有不同的限制。
簡單說就是硬件加速的時候,對圖片的大小有限制。不同設備可能有不同的最大值。這個問題悲催的地方是,程序貌似沒有捕獲到這個exception, 結果是程序也不報錯,圖片也顯示不出來。
 
一個解決的方法是禁止硬件加速 
 <application android:hardwareAccelerated="false" ...>
 
 
    /**
     * 把uri 轉換為 bitmap          注意要關閉硬件加速!!否則會因為圖片超大而不顯示
     * @param mContext
     * @param mUri
     * @return
     */
    public static  Bitmap readBitmapUri(Context mContext,Uri mUri) {
        ContentResolver contentProvider = mContext.getContentResolver();
        Bitmap bmp = null;
        try {
            bmp = BitmapFactory.decodeStream(contentProvider.openInputStream(mUri));

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return bmp;

    }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM