java bytebuffer to string_java中如何让byte[]与string类型转换后,保持不变

该博客讨论了如何在Android应用中从网络获取图片,并尝试将这些图片以列表形式传递到下一个Activity。作者首先通过图片URL下载图片,然后将其转换为byte[],再试图转换为字符串并存储在ArrayList中进行传递。然而,作者遇到问题,即无法在接收端正确地将接收到的字符串还原为byte[]以显示图片。
摘要由CSDN通过智能技术生成

在android中我从网络(通过图片网址)上获得几张图片后,我想进入下一个activity时,把这几张图片传过去,可是我想以列表list传过去,可是android的activity中intent中只能传arrayLis...

在android中我从网络(通过图片网址)上获得几张图片后,我想进入下一个activity时,把这几张图片传过去,可是我想以列表list传过去,可是android的activity中intent中只能传arrayList类型,我想将得到的byte【】转换成string后传过去,但到那边不可以用了。public class AnroidTestActivity extends Activity {

private EditText imagePathText;

private static final String TAG="DataActivity";

private ImageView imageView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

imagePathText = (EditText) findViewById(R.id.editText1);

imageView=(ImageView)findViewById(R.id.imageView1);

//获取我的宝马车图片

Button button = (Button) findViewById(R.id.button1);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String path = imagePathText.getText().toString();

try {

byte[] data=NetTool.getImage(path);

System.out.println(data.length);

Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);

imageView.setImageBitmap(bm);

String string=bytesToString(data);

Listlist=new ArrayList();

list.add(string);

System.out.println("转换后得到的数据:"+list.get(0));

System.out.println("转换后得到的数据:"+list.get(0).length());

Intent intent=new Intent();

intent.putStringArrayListExtra("list", (ArrayList) list);

intent.setClass(AnroidTestActivity.this,TestIntent.class);

startActivity(intent);

} catch (Exception e) {

Log.i(TAG, e.toString());

Toast.makeText(AnroidTestActivity.this, "获得图片失败", 1).show();

}

}

});

// 获取网页源代码

}

//将byte【】类型转换成string类型

public static String bytesToString(byte[] b) {

StringBuffer result = new StringBuffer("");

int length = b.length;

for (int i = 0; i < length; i++) {

result.append((char)(b[i] & 0xff));

}

return result.toString();

}

}

public class TestIntent extends Activity{

private ImageView imageView;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.test);

imageView=(ImageView)findViewById(R.id.test_imageView1);

Intent intent=getIntent();

List list=new ArrayList();

list=(ArrayList)intent.getStringArrayListExtra("list");

System.out.println("转换后得到的数据:"+list.get(0));

System.out.println("转换后得到的数据:"+list.get(0).length());

byte[]data= list.get(0).getBytes();

System.out.println(data.length);

Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);

imageView.setImageBitmap(bm);

}

/** * 将String转为byte数组 */

// public static byte[] stringToBytes(String s, int length) {

// while (s.getBytes

//

// ().length < length) {

// s += "";

// }

// return s.getBytes();

// }

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值