<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 閱讀(3718) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 亚洲国产精品日韩专区AV| 四虎永久在线免费观看| 99热在线免费观看| h视频在线观看免费网站| ww在线观视频免费观看| 亚洲男人都懂得羞羞网站| 亚洲国产高清视频在线观看| 亚洲性无码AV中文字幕| 日韩电影免费在线观看网址| 麻豆精品成人免费国产片| 免费电影在线观看网站| 国产成人精品亚洲精品| 亚洲一区二区久久| av电影在线免费看| 野花高清在线电影观看免费视频 | 国产vA免费精品高清在线观看| 一级毛片直播亚洲| 亚洲av无码久久忘忧草| 一二三四视频在线观看中文版免费| 亚洲乱码在线卡一卡二卡新区| 日韩视频在线观看免费| 吃奶摸下高潮60分钟免费视频| 亚洲日本国产乱码va在线观看| 国产成人免费高清激情视频| 黄页网站在线观看免费| 三年片在线观看免费大全| 亚洲精品V天堂中文字幕| 91人人区免费区人人| 亚洲综合无码AV一区二区| 亚洲国产精品网站在线播放| 啊v在线免费观看| 久久久久免费精品国产| 99久久婷婷国产综合亚洲| 99国产精品免费观看视频| 亚洲午夜精品一区二区麻豆| 亚洲中文字幕视频国产| 51精品视频免费国产专区| 亚洲AV无码日韩AV无码导航| 黄色毛片免费观看| 2022年亚洲午夜一区二区福利| 国产成人免费ā片在线观看老同学 |