男人女人做那事网站,wordpress无法访问插件,郑州加盟网站建设,烟台网站建设公司2019独角兽企业重金招聘Python工程师标准 资源描述: 关于android获取网络图片主要是把网络图片的数据流读入到内存中然后用1.Bitmap bitMap BitmapFactory.decodeByteArray(data, 0, length); 方法来将图片流传化为bitmap类型 这样才能用到1.imageView.setImage… 2019独角兽企业重金招聘Python工程师标准 资源描述: 关于android获取网络图片主要是把网络图片的数据流读入到内存中然后用1.Bitmap bitMap BitmapFactory.decodeByteArray(data, 0, length); 方法来将图片流传化为bitmap类型 这样才能用到1.imageView.setImageBitmap(bitMap); 来进行转化在获取bitmap时候出现null 错误代码byte[] data GetImageForNet.getImage(path); int length data.length; Bitmap bitMap BitmapFactory.decodeByteArray(data, 0, length); imageView.setImageBitmap(bitMap); 下面是 GetImageForNet.getImage()方法的代码清单public static byte[] getImage(String path) throws Exception { URL url new URL(path); HttpURLConnection httpURLconnection (HttpURLConnection)url.openConnection(); httpURLconnection.setRequestMethod(GET); httpURLconnection.setReadTimeout(6*1000); InputStream in null; byte[] b new byte[1024]; int len -1; if (httpURLconnection.getResponseCode() 200) { in httpURLconnection.getInputStream(); in.read(b); in.close(); return b; } return null; } 看起来没有问题 获取网络图片输入流填充二进制数组返回二进制数组然后使用 Bitmap bitMap BitmapFactory.decodeByteArray(data, 0, length); data就是返回的二进制数组获取bitMap 看起来没有问题可是bitMap就是为nullBitmapFactory.decodeByteArray方法中所需要的data不一定是传统意义上的字节数组查看android api最后发现BitmapFactory.decodeByteArray所需要的data字节数组并不是想象中的数组而是把输入流传化为字节内存输出流的字节数组格式正确代码try { byte[] data GetImageForNet.getImage(path); String d new String(data); // File file new File(1.jpg); //OutputStream out new FileOutputStream(file); //out.write(data); //out.close(); int length data.length; Bitmap bitMap BitmapFactory.decodeByteArray(data, 0, length); imageView.setImageBitmap(bitMap); //imageView.seti } catch (Exception e) { Log.i(TAG, e.toString()); Toast.makeText(DataActivity.this, 获取图片失败, 1).show(); } 下面是改进后的 GetImageForNet.getImage()方法的代码清单public static byte[] getImage(String path) throws Exception { URL url new URL(path); HttpURLConnection httpURLconnection (HttpURLConnection)url.openConnection(); httpURLconnection.setRequestMethod(GET); httpURLconnection.setReadTimeout(6*1000); InputStream in null; byte[] b new byte[1024]; int len -1; if (httpURLconnection.getResponseCode() 200) { in httpURLconnection.getInputStream(); byte[] result readStream(in); in.close(); return result; } return null; } public static byte[] readStream(InputStream in) throws Exception{ ByteArrayOutputStream outputStream new ByteArrayOutputStream(); byte[] buffer new byte[1024]; int len -1; while((len in.read(buffer)) ! -1) { outputStream.write(buffer, 0, len); } outputStream.close(); in.close(); return outputStream.toByteArray(); } -------------------------------------------------------------------------------------------------------------------android写入数据库、读取sqlite中的图片 import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import android.app.Activity;import android.content.Context;import android.content.res.AssetManager;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView; public class AndroidTestActivity extends Activity { /** Called when the activity is first created. */ private Button btn; private SQLiteDatabase db null; private ImageView imageView; Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /** * getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。 * 但getWritableDatabase() 方法以读写方式打开数据库一旦数据库的磁盘空间满了数据库就只能读而不能写 * 倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库 * 如果数据库的磁盘空间满了就会打开失败当打开失败后会继续尝试以只读方式打开数据库。 */ DBHelper helper new DBHelper(AndroidTestActivity.this, mysql1.txt); db helper.getWritableDatabase(); imageView(ImageView)findViewById(R.id.imgView); btn(Button)findViewById(R.id.button1); btn.setOnClickListener( new Button.OnClickListener() { public void onClick(View v) { String fileNamemysql.db; AssetManager assets getAssets(); try { InputStream isassets.open(fileName); Log.v(is.length, is.available()); FileOutputStream fosnew FileOutputStream(Environment.getDataDirectory() /data/com.xujie.test/databases/ mysql1.txt); byte[]bytesgetInput(is); // int b0; // while((bis.read())!-1)// {// fos.write(b);// } fos.write(bytes); /** * 将数据流关闭 */ fos.flush(); fos.close(); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Cursor cursor get_equipment_by_id(3); while(cursor.moveToNext()) { Bitmap bitmapgetIconFromCursor(cursor, cursor.getColumnIndex(icon)); Drawable drawablenew BitmapDrawable(bitmap); imageView.setImageDrawable(drawable); } } } ); } public Bitmap getIconFromCursor(Cursor c, int iconIndex) { byte[] data c.getBlob(iconIndex); try { Log.v(BitmapFactory.decodeByteArray.length000:, BitmapFactory.decodeByteArray.length); Log.v(BitmapFactory.decodeByteArray.length:, BitmapFactory.decodeByteArray(data, 0, data.length).getWidth()); Log.v(BitmapFactory.decodeByteArray.length111:, BitmapFactory.decodeByteArray.length); return BitmapFactory.decodeByteArray(data, 0, data.length); } catch (Exception e) { return null; } } public byte[] getInput(InputStream is) throws IOException { ByteArrayOutputStream baos new ByteArrayOutputStream(); byte[] b new byte[1024]; int len 0; while ((len is.read(b, 0, 1024)) ! -1) { baos.write(b, 0, len); baos.flush(); } return baos.toByteArray(); } /** * name get_equipment_by_id * desc 设备列表 * author liwang * date 2011-12-28 * param String type 设备类型 * return Cursor */ public Cursor get_equipment_by_id(String id) { return db.query(equipments, null, id?, new String[]{id} ,null, null, null); } class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } public DBHelper(Context context, String name) { super(context, name, null, 1); } Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }} 转载于:https://my.oschina.net/u/1423612/blog/291707