这篇文章是记录我们平时在android开发过程中,经常会用到的类型转换,主要包括String、byte[]、bitmap、inputstram、Drawable之间的转换,代码如下:
<span style="font-size:18px;">import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; public class Demo { /** * bitmap 转 byte[]数组 */ public byte[] bitmap2byteArray(Bitmap bitmap){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] bytes = baos.toByteArray(); return bytes; } /** * bitmap 转 inputstream */ public InputStream bitmap2InputStream(Bitmap bitmap){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); InputStream is = new ByteArrayInputStream(baos.toByteArray()); return is; } /** * byte[]数组 转 bitmap */ public Bitmap byteArray2Bitmap(byte[] bytes){ Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); return bitmap; } /** * inputstream 转 bitmap */ public Bitmap inputStream2Bitmap(InputStream is){ Bitmap bitmap = BitmapFactory.decodeStream(is); return bitmap; } /** * Drawable 转 bitmap */ public Bitmap drawable2Bitmap(Drawable img){ BitmapDrawable bd = (BitmapDrawable) img; Bitmap bitmap = bd.getBitmap(); return bitmap; } /** * bitmap 转 Drawable */ public Drawable bitmap2Drawable(Bitmap bitmap){ BitmapDrawable bd = new BitmapDrawable(bitmap); Drawable img = bd; return img; } /** * String 转 byte[]数组 */ public byte[] string2ByteArray(String str,String charset){ byte[] bytes = null; if(charset == null){ bytes = str.getBytes(); }else{ try { //如charset = "utf-8" bytes = str.getBytes(charset); } catch (Exception e) { // TODO: handle exception } } return bytes; } /** * String 转 inputstream */ public InputStream string2InputStream(String str){ InputStream is = new ByteArrayInputStream(str.getBytes()); return is; } /** * inputstream 转 String 方法01 */ public String inputStream2String01(InputStream is) throws IOException{ ByteArrayOutputStream baos = new ByteArrayOutputStream(); int i = -1; while((i=is.read()) != -1){ baos.write(i); } return baos.toString(); } /** * inputstream 转 String 方法02 */ public String inputStream2String02(InputStream is) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; while((line=br.readLine()) != null){ sb.append(line+"\n"); } return sb.toString(); } /** * inputstream 转 String 方法03 */ public String inputSteam2String03(InputStream is) throws IOException{ StringBuilder sb = new StringBuilder(); byte[] b =new byte[1024]; for(int n; (n=is.read(b)) != -1;){ String s = new String(b, 0, n); sb.append(s); } return sb.toString(); } }</span>
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 07:59:02