亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥不能直接在原來的bitmap上直接操作?

為啥不能直接在原來的bitmap上直接操作?

正在回答

1 回答

?

在canvas類中你可以看到無論是構造方法還是setBitmap(Bitmap bitmap) 中都有

if (!bitmap.isMutable()) {

? ? ? ? ? ? throw new IllegalStateException(

? ? ? ? ? ? ? ? ? ? ? ? ? ? "Immutable bitmap passed to Canvas constructor");

? ? ? ? }

就是說如果bitmap不可改變的情況下,canvas是不允許進行繪制的,當你用BitmapFactory.decodeResource,返回的bitmap是默認狀態下的mIsMutable=false;(其他方法應該也是一樣的,你自己可以看看),而Bitmap.createBitmap()中可以看到返回的是?

Bitmap bm = nativeCreate(null, 0, width, width, height, config.nativeInt, true);這最后一個參數是true的也就是?mutable,說可以改變的位圖

? ? private static native Bitmap nativeCreate(int[] colors, int offset,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int stride, int width, int height,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int nativeConfig, boolean mutable);


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android圖像處理-打造美圖秀秀從它開始
  • 參與學習       27239    人
  • 解答問題       71    個

圖像色彩的分析與處理,演示市面上常見的圖像處理特效的實現方法

進入課程

為啥不能直接在原來的bitmap上直接操作?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號