<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
    主站蜘蛛池模板: 免费国产污网站在线观看15| 亚洲国产福利精品一区二区| 国产亚洲精品免费| 大学生一级毛片免费看| 亚洲精品视频免费在线观看| 久久精品无码专区免费青青| 亚洲一区二区在线视频| 16女性下面扒开无遮挡免费| 亚洲国产高清美女在线观看| 日韩毛片免费无码无毒视频观看| 亚洲国产av高清无码| 免费国产黄线在线观看| 亚洲欧美日韩久久精品| 日韩免费高清视频| 女人裸身j部免费视频无遮挡| 亚洲一区二区精品视频| 女同免费毛片在线播放| 久久久久亚洲精品成人网小说| 久久精品无码精品免费专区| 亚洲欧洲日产国码二区首页| 最近免费中文字幕4| 国产成人亚洲综合无| 亚洲线精品一区二区三区影音先锋 | 成人免费看吃奶视频网站| 亚洲熟妇AV乱码在线观看| 国产又粗又长又硬免费视频| 亚洲黄片手机免费观看| 91亚洲va在线天线va天堂va国产 | 亚洲人成依人成综合网| 在线精品一卡乱码免费| 国产亚洲视频在线观看网址| 亚洲熟妇av一区二区三区| 亚洲免费在线观看视频| 羞羞漫画小舞被黄漫免费| 亚洲AV无一区二区三区久久| 国产成人精品免费视频网页大全| 久久亚洲精品11p| 亚洲va无码手机在线电影| 国产精品成人免费视频网站京东| 日韩精品视频在线观看免费 | 女人18特级一级毛片免费视频|