androidはローカルまたはネットワーク画像を読み出し、Bitmapに変換する.
androidプロジェクトをする時、私達はいつもローカルまたはネットワークから画像を読み込む必要があります.Bitmap画像に変換して使用します.以下はローカル画像を読み取り、変換する方法です.
付加的なcopy関数
prvate static void copy(InputStream in、Output Stream out) throws IOException{ byte[]b=new byte[IOU BUFFER SIZE] int read; while((read=in.read(b))!=-1){ out.write(b,0,read); } }
/**
* bitmap url - , :
*
* A. : url="http://blog.foreverlove.us/girl2.png" ;
*
* B. :url="file://mnt/sdcard/photo/image.png";
*
* C. ,png, jpg,bmp,gif
*
* @param url
* @return
*/
public static Bitmap GetLocalOrNetBitmap(String url)
{
Bitmap bitmap = null;
InputStream in = null;
BufferedOutputStream out = null;
try
{
in = new BufferedInputStream(new URL(url).openStream(), Constant.IO_BUFFER_SIZE);
final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
out = new BufferedOutputStream(dataStream, Constant.IO_BUFFER_SIZE);
copy(in, out);
out.flush();
byte[] data = dataStream.toByteArray();
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
data = null;
return bitmap;
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
}
説明:コンスタント.IO_BUFER_SIZEは一つの定数です.定数に変えられます.例えば、2*1024は、あなたの写真のサイズによって、自分で写真のサイズに合わせて設定します.付加的なcopy関数
prvate static void copy(InputStream in、Output Stream out) throws IOException{ byte[]b=new byte[IOU BUFFER SIZE] int read; while((read=in.read(b))!=-1){ out.write(b,0,read); } }