版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、本文章來給大家介紹Android中Bitmap和Drawable用法詳解,有需要了解的同學(xué)可進入?yún)⒖肌R?、相關(guān)概念1、Drawable就是一個可畫的對象,其可能是一張位圖(BitmapDrawable,也可能是一個圖形(ShapeDrawable,還有可能是一個圖層(LayerDrawable,我們根據(jù)畫圖的需求,創(chuàng)建相應(yīng)的可畫對象2、Canvas畫布,繪圖的目的區(qū)域,用于繪圖3、Bitmap位圖,用于圖的處理4、Matrix矩陣二、Bitmap1、從資源中獲取BitmapResources res = getResources(;2、Bitmap byte代碼如下public byte Bi
2、tmap2Bytes(Bitmap bm ByteArrayOutputStream baos = new ByteArrayOutputStream(;return baos.toByteArray(;3、byte Bitmap代碼如下public Bitmap Bytes2Bimap(byte b if (b.length != 0 return BitmapFactory.decodeByteArray(b, 0, b.length; else return null;Bitmap縮放代碼如下public static Bitmap zoomBitmap(Bitmap bitmap, i
3、nt width, int height int w = bitmap.getWidth(;int h = bitmap.getHeight(;Matrix matrix = new Matrix(;float scaleWidth = (float width / w;float scaleHeight = (float height / h;matrix.postScale(scaleWidth, scaleHeight;Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, w, h, matrix, true; return newbmp;5
4、、將Drawable轉(zhuǎn)化為Bitmap代碼如下public static Bitmap drawableToBitmap(Drawable drawable / 取 drawable 的長寬int w = drawable.getIntrinsicWidth(;int h = drawable.getIntrinsicHeight(;/ 取 drawable 的顏色格式/ 建立對應(yīng) bitmapBitmap bitmap = Bitmap.createBitmap(w, h, config;/ 建立對應(yīng) bitmap 的畫布Canvas canvas = new Canvas(bitmap;d
5、rawable.setBounds(0, 0, w, h;/ 把 drawable 內(nèi)容畫到畫布中drawable.draw(canvas;return bitmap;public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx int w = bitmap.getWidth(;int h = bitmap.getHeight(;Bitmap output = Bitmap.createBitmap(w, h, Config.ARGB_8888;Canvas canvas = new Canvas(output
6、;final int color = 0xff424242;final Paint paint = new Paint(;final Rect rect = new Rect(0, 0, w, h;final RectF rectF = new RectF(rect;paint.setAntiAlias(true;canvas.drawARGB(0, 0, 0, 0;paint.setColor(color;canvas.drawRoundRect(rectF, roundPx, roundPx, paint;paint.setXfermode(new PorterDuffXfermode(M
7、ode.SRC_IN;canvas.drawBitmap(bitmap, rect, rect, paint;return output;6、獲得圓角圖片代碼如下public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap final int reflectionGap = 4;int w = bitmap.getWidth(;int h = bitmap.getHeight(;Matrix matrix = new Matrix(;matrix.preScale(1, -1;Bitmap reflectionImage
8、= Bitmap.createBitmap(bitmap, 0, h / 2, w, h / 2, matrix, false;Bitmap bitmapWithReflection = Bitmap.createBitmap(w, (h + h / 2, Config.ARGB_8888;Canvas canvas = new Canvas(bitmapWithReflection;canvas.drawBitmap(bitmap, 0, 0, null;Paint deafalutPaint = new Paint(;canvas.drawRect(0, h, w, h + reflect
9、ionGap, deafalutPaint;canvas.drawBitmap(reflectionImage, 0, h + reflectionGap, null;Paint paint = new Paint(;LinearGradient shader = new LinearGradient(0, bitmap.getHeight(, 0, bitmapWithReflection.getHeight( + reflectionGap, 0x70ffffff,0x00ffffff, TileMode.CLAMP;paint.setShader(shader;/ Set the Tra
10、nsfer mode to be porter duff and destination inpaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN;/ Draw a rectangle using the paint with our linear gradientcanvas.drawRect(0, h, w, bitmapWithReflection.getHeight(+ reflectionGap, paint;return bitmapWithReflection;三、Drawable代碼如下Bitmap bm=xxx; /xxx根
11、據(jù)你的情況獲取BitmapDrawable bd= new BitmapDrawable(getResource(, bm;因為BtimapDrawable是Drawable的子類,最終直接使用bd對象即可。2、Drawable縮放代碼如下public static Drawable zoomDrawable(Drawable drawable, int w, int h int width = drawable.getIntrinsicWidth(;int height = drawable.getIntrinsicHeight(;/ drawable轉(zhuǎn)換成bitmapBitmap oldbmp = drawableToBitmap(drawable;/ 創(chuàng)建操作圖片用的Matrix對象Matrix matrix = new Matrix(;/ 計算縮放比例float sx = (float w / width;float sy = (float h / h
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度辦公室租賃合同(含企業(yè)社會責(zé)任履行支持)3篇
- 2025年度農(nóng)村土地墳地租賃與墓園綠化養(yǎng)護合同范本
- 二零二五年度教育機構(gòu)高管人才培養(yǎng)聘用合同3篇
- 2025年度XX養(yǎng)老產(chǎn)業(yè)公司二零二五年度長期貸款合同3篇
- 二零二五年度綠色環(huán)保門窗設(shè)計與施工一體化合同3篇
- 2025年度跨境電商公對公匯款結(jié)算合同范本3篇
- 2025年度住房公積金租賃服務(wù)合同范本3篇
- 2025年度公司關(guān)鍵信息資產(chǎn)保密合同3篇
- 2025年度醫(yī)療機構(gòu)信息化系統(tǒng)升級改造服務(wù)合同3篇
- 二零二五年度農(nóng)村機井承包與農(nóng)村土地流轉(zhuǎn)服務(wù)合同
- 江西省贛州市2023-2024學(xué)年高一上學(xué)期期末考試化學(xué)試題 附答案
- 消化道出血護理常規(guī)課件
- 2024年物流運輸公司全年安全生產(chǎn)工作計劃例文(4篇)
- 貴州省銅仁市2023-2024學(xué)年高二上學(xué)期期末質(zhì)量監(jiān)測試題 地理 含答案
- 2024-2025學(xué)年二年級語文上冊期末非紙筆試卷二(統(tǒng)編版)
- 糖尿病老年患者健康指導(dǎo)
- 2024年城市更新項目回遷安置合同
- 期末卷(一)-2023-2024學(xué)年高一年級地理上學(xué)期高頻考題期末測試卷(江蘇專用)(原卷版)
- 外研版(三起)(2024)小學(xué)三年級上冊英語全冊教案
- 初一《皇帝的新裝》課本劇劇本
- 幼兒園意識形態(tài)風(fēng)險點排查報告
評論
0/150
提交評論