<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                雖然遇到過幾次因為BITMAP照成OOM,但是之前都沒有正視過這個問題,今天去面試果然出現了這個問題,感覺被虐了啊。知恥而后勇,回去查了一些資料,現在總算明白了一點LruCache圖片緩存技術,這個類非常適合用來緩存圖片,它的主要算法原理是把最近使用的對象用強引用存儲在 LinkedHashMap 中,并且把最近最少使用的對象在緩存值達到預設定值之前從內存中移除,這種機制非常適合bitmap這種內存坑爹貨啊。 下面貼一下示例代碼,其實這個代碼一點實用意義都沒有,只不過把里面的一些函數和調用提了一下。 ~~~ package com.example.mytest; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.support.v4.util.LruCache; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView iv; private Bitmap bm; private LruCache<String, Bitmap> mMemoryCache; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); final int cacheSize = maxMemory/8; mMemoryCache = new LruCache<String, Bitmap>((cacheSize)){ @Override protected int sizeOf(String key, Bitmap value) { // TODO Auto-generated method stub return value.getByteCount()/1024; } }; iv = (ImageView) findViewById(R.id.iv); bm = BitmapFactory.decodeResource(getResources(), R.drawable.xiamu); iv.setImageBitmap(bm); mMemoryCache.put("key", bm); iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Bitmap bitmap = null; // TODO Auto-generated method stub if (mMemoryCache.get("key") == null) { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xiamu); iv.setImageBitmap(bitmap); } else { iv.setImageBitmap(mMemoryCache.get("key")); } } }); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看