Base64到位图以显示在ImageView中

我有这段代码,它已使用Webservice获取已经转换为字符串的BLOB图像。这是JSON输出。

{driver_name: "Anna Biendia"

taxi_plate_no: "NUV 900"

driver_contact_no: "09169271825"

driver_operator: "grab"

driver_operator_address: "987 Buendia St. California"

image: "iVBORw0KGgoAAAANSUhEUgAACDQAAAXcCAYAAADXlEzmAAAACXBIWX..."}

这是我在android中获取JSON并将其显示在布局中的代码。除图像外,其他值也已显示。

public class DriverDetails extends Activity {

ArrayList<Objects> objectsList = new ArrayList<>();

String url = "http://192.168.1.110:8080/taxisafe3/displays/taxidetails";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_driver_details);

new Task().execute(url);

}

public class Task extends AsyncTask<String, String, String> {

@Override

protected void onPreExecute() {

super.onPreExecute();

}

@Override

protected String doInBackground(String... strings) {

String content = HttpULRConnect.getData(url);

return content;

}

@Override

protected void onPostExecute(String s) {

try {

TextView title1 = (TextView) findViewById(R.id.textView3);

TextView title = (TextView) findViewById(R.id.textView2);

TextView title2 = (TextView) findViewById(R.id.textView7);

TextView title3 = (TextView) findViewById(R.id.textView9);

TextView title4 = (TextView) findViewById(R.id.textView11);

ImageView image = (ImageView) findViewById(R.id.imageView2);

JSONArray ary = new JSONArray(s);

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

JSONObject jsonobject = ary.getJSONObject(i);

Objects objects = new Objects();

objects.setDriver_name(jsonobject.getString("driver_name"));

objects.setTaxi_plate_no(jsonobject.getString("taxi_plate_no"));

objects.setDriver_operator(jsonobject.getString("driver_operator"));

objects.setDriver_operator_address(jsonobject.getString("driver_operator_address"));

objects.setDriver_contact_no(jsonobject.getString("driver_contact_no"));

objects.setImage(jsonobject.getString("image"));

objectsList.add(objects);

if (title1 != null){

title1.setText(objects.getDriver_name());

}

if (title != null){

title.setText(objects.getTaxi_plate_no());

}

if (title2 != null){

title2.setText(objects.getDriver_operator());

}

if (title3 != null){

title3.setText(objects.getDriver_operator_address());

}

if (title4 != null){

title4.setText(objects.getDriver_contact_no());

}

if(image != null){

byte[] decodedString = Base64.decode(objects.getImage(), Base64.DEFAULT);

Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

image.setImageBitmap(decodedByte);

}

}

} catch (JSONException e) {

e.printStackTrace();

}

}

}

}

我的代码有什么问题,为什么图像没有显示在ImageView中?提前致谢。:)

回答:

将 转换为

byte[] decodedString = Base64.decode(objects.getImage(), Base64.DEFAULT);

Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

image.setImageBitmap(Bitmap.createScaledBitmap(decodedByte, image.getWidth(), image.getHeight(), false));

以上是 Base64到位图以显示在ImageView中 的全部内容, 来源链接: utcz.com/qa/424344.html

回到顶部