自定義view中bitmap.getwidth()方法報空指標
阿新 • • 發佈:2019-02-07
自定義view 的時候,在構造方法中初始化bitmap,一直報null。經過修改圖片獲取放在onDraw中,正常,原因未知。
程式碼如下:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); switchBackgroupBitmap=BitmapFactory.decodeResource(mContext.getResources(),R.drawable.t1);
switchBackgroupBitmap = setImgSize(switchBackgroupBitmap, 300, 100);
publicBitmap setImgSize(Bitmap bm, int newWidth, int newHeight) { // 獲得圖片的寬高. int width = bm.getWidth(); int height = bm.getHeight(); // 計算縮放比例. float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // 取得想要縮放的matrix引數. Matrix matrix = new Matrix(); matrix.postScale(scaleWidth,scaleHeight); // 得到新的圖片. Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true); return newbm; }