<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calvin's Tech Space

    成于堅忍,毀于浮躁

       :: 首頁 :: 聯系 :: 聚合  :: 管理

     

    Android縮放drawable

    一、  相關概念

    1.        Drawable就是一個可畫的對象,其可能是一張位圖(BitmapDrawable),也可能是一個圖形(ShapeDrawable),還有可能是一個圖層(LayerDrawable),我們根據畫圖的需求,創建相應的可畫對象

    2.        Canvas畫布,繪制的目的區域,用于繪圖

    3.        Bitmap位圖,用于圖的處理

    4.        Matrix矩陣,此例中用于操作圖片

    二、  步驟

    1.        drawable畫到位圖對象上

    2.        對位圖對象做縮放(或旋轉等)操作

    3.        把位圖再轉換成drawable

    三、 示例
             static Bitmap drawableToBitmap(Drawable drawable) // drawable 
    轉換成bitmap
             {
                       int width = drawable.getIntrinsicWidth();   // 
    drawable的長寬
                       int height = drawable.getIntrinsicHeight();
                     Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888:Bitmap.Config.RGB_565;         //
    drawable的顏色格式
                       Bitmap bitmap = Bitmap.createBitmap(width, height, config);     // 
    建立對應bitmap
                       Canvas canvas = new Canvas(bitmap);         // 
    建立對應bitmap的畫布
                       drawable.setBounds(0, 0, width, height);
                       drawable.draw(canvas);      // 
    drawable內容畫到畫布中
                       return bitmap;
             }

             static Drawable zoomDrawable(Drawable drawable, int w, int h)
             {
                       int width = drawable.getIntrinsicWidth();
                       int height= drawable.getIntrinsicHeight();
                       Bitmap oldbmp = drawableToBitmap(drawable); // drawable
    轉換成bitmap
                       Matrix matrix = new Matrix();   // 
    創建操作圖片用的Matrix對象
                       float scaleWidth = ((float)w / width);   // 
    計算縮放比例
                       float scaleHeight = ((float)h / height);
                       matrix.postScale(scaleWidth, scaleHeight);         // 
    設置縮放比例
                       Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true);       // 
    建立新的bitmap,其內容是對原bitmap的縮放后的圖
                       return new BitmapDrawable(newbmp);       // 
    bitmap轉換成drawable并返回
             }
    }

    posted on 2010-06-03 19:04 calvin 閱讀(3715) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 黄色大片免费网站| 91丁香亚洲综合社区| fc2免费人成在线| 亚洲国产精品人人做人人爱| 精品国产亚洲第一区二区三区| 97无码免费人妻超级碰碰夜夜| 亚洲一级毛片免费观看| 成人黄18免费视频| 亚洲成av人片在线天堂无| 精品无码国产污污污免费| 黄网站色视频免费看无下截| 亚洲AV蜜桃永久无码精品| 2022免费国产精品福利在线 | 久久久久成人片免费观看蜜芽| 亚洲精品美女久久777777| 久久午夜无码免费| 91丁香亚洲综合社区| 亚洲?V无码成人精品区日韩| a视频在线免费观看| 91亚洲一区二区在线观看不卡 | 91国内免费在线视频| 无码乱人伦一区二区亚洲一| 久久国产免费福利永久| 亚洲免费福利在线视频| 亚洲国产一成久久精品国产成人综合 | GOGOGO免费观看国语| 亚洲成a人片77777老司机| 日本XXX黄区免费看| 国产精品观看在线亚洲人成网| 亚洲午夜久久久久妓女影院| 中文字幕亚洲免费无线观看日本 | 99久热只有精品视频免费观看17| 亚洲免费观看在线视频| 免费在线观看理论片| 午夜精品射精入后重之免费观看| 国产色在线|亚洲| 亚洲日韩精品无码专区网址| 日韩在线免费视频| 亚洲免费视频一区二区三区| 亚洲国产精品成人综合色在线婷婷| 国产福利免费观看|