關於inSampleSize的解釋

2021-06-19 09:07:31 字數 1048 閱讀 4332

剛接觸android的bitmap類時,對這個引數非常費解。一開始以為是用來縮放的,但是縮放本身就有相應的類(matrix 類)。那這個insamplesize是用來幹什麼的呢?

目標:將android手機sd卡上的某張1000*1000讀取到手機螢幕上,顯示成一張200*200的縮圖。

第一步:

通過如下**:

bitmapfactory.options opts = new bitmapfactory.options();

opts.injustdecodebounds = true;

bitmap bitmap = bitmapfactory.decodefile(imagefile, opts);

使得opts中的長寬被賦值。

第二步:

通過如下**讀取儲存卡上的:

opts.insamplesize = 4;       

opts.injustdecodebounds = false;

try catch (outofmemoryerror err)

將insamplesize設定為4,即讀出來的bitmap長寬分別為原始長寬的1/4即為250.

第三步:

// 建立操作用的matrix物件

matrix matrix = new matrix();

// 縮放動作

matrix.postscale(0.8, 0.8);

// 建立新的

bitmap resizedbitmap = bitmap.createbitmap(bmp, 0, 0,

width, height, matrix, true);

從上面三步中可以看出,當手機中存有一張1000*1000的時,若想要取出一張200*200的縮圖,沒必要將1000*1000的完全讀入記憶體中,可以讀入250*250的,然後再進行縮放得到200*200的。這個跟讀入1000*1000直接進行縮放到200*200是一樣的。從而免去了占用記憶體的煩惱。

關於this 的使用

如有不對的地方請大家指出,呵呵.this 的使用 1.this是指當前物件自己。當在乙個類中要明確指出使用物件自己的的變數或函式時就應該加上this引用。如下面這個例子中 public class a public static void main string args 執行結果 s hellow...

關於IT的我們

首先,對於廣大程式設計師,要先對程式設計師這個職業有個理性的認識。程式設計師不是什麼神聖的職業,這只是乙個普通的技術工種。我認為還算不上是it精英 當然精英的定位,每個人都有不一樣的標準 我個人認為,能自主發現問題,提出方案,構架程式結構的it人士才能算的上it精英。學會某種語言,了解某個領域的基本...

關於NSAutoReleasePool的理解

做iphone應用開發已經2年多了,但一些基礎的概念性問題只是大致了解,腦袋中有個模糊的概念.雖然對平時工作開發沒什麼影響,不過時間長了,心裡總是有點虛.所以從現在開始,每當我遇到乙個模糊概念的問題或topic,我都要寫一篇blog來記錄分析,響應之前在網上看過的乙個blog簽名 好記性不如爛部落格...