Bitmap使用容易被忽略的乙個小問題點

2021-07-14 18:47:40 字數 1247 閱讀 4555

下面的**是存在問題的:

matrix matrix = new matrix();

matrix.setrotate(0.013558723994643297f);

log.d(tag,"isidentity = " + matrix.isidentity());

bitmap bitmap = bitmapfactory.decoderesource(getresources(), r.mipmap.ic_launcher);

log.d(tag, "bitmap = " + bitmap.ismutable());

bitmap targetbmp = bitmap.createbitmap(bitmap, 0, 0, bitmap.getwidth(), bitmap.getheight());//或者bitmap targetbmp = bitmap.createbitmap(bitmap, 0, 0, bitmap.getwidth(), bitmap.getheight(),matrix,true);

log.d(tag, "bitmap = " + bitmap + ",targetbmp = " + targetbmp);

if (!bitmap.isrecycled())

列印的結果是bitmap和targetbmp是同乙個物件。

ismutable = false,isidentity = true。

如果把targetbmp返回出去,就會導致使用者報錯。

也就是說bitmap.createbitmap可能返回同乙個物件。

在看原始碼,確實有這麼一段**:

// check if we can just return our argument unchanged

if (!source.ismutable() && x == 0 && y == 0 && width == source.getwidth() &&

height == source.getheight() && (m == null || m.isidentity()))

所以,要注意bitmap.createbitmap的使用。注:

在gallery2中,有這樣的一段**:

public static bitmap resizebitmapbyscale(

bitmap bitmap, float scale, boolean recycle)

這段**不僅僅在gallery2中見過,很多時候,在其他的專案也見過使用這樣的寫法,所以,告誡自己以後要注意。

容易被忽略的羅大佑歌曲

剛才跟michael聊天,說起羅大佑,他說不熟。我說我肯定能找出10首歌,你知道,但你不知道是羅的歌。果然,我一說,他說 這也是他的 太牛x了 看來得給大家掃掃盲了,列幾首你可能很熟悉,但卻不一定知道是羅氏歌曲的歌 童年 沒聽過的童年的恐怕沒有,但不知道童年是羅大佑作品的還真的有。此歌最早由張艾嘉演...

容易被忽略的label標籤

容易被忽略的label標籤 原始作用 label 標籤是html原生的標籤,其原始的作用參考 這裡 label 標籤為 input 元素定義標註 標記 label 元素不會向使用者呈現任何特殊效果。不過,它為滑鼠使用者改進了可用性。如果您在 label 元素內點選文字,就會觸發此控制項。就是說,當使...

關於 的乙個容易被忽略的問題

a 0,1,2,3,0,1,2 5 a 4 3 在一般來說,所有的使用者都知道元組一旦被建立就不可更改,除非用乙個新的元組來覆蓋它,但是上面的示例有了不同的反饋。執行之後得到了異常 typeerror tuple object does not support item assignment 在這個...