У меня есть образец моего файла JSON (он довольно большой, поэтому я не буду показывать его все).JSON Image in new Actity
[
{
"name":"Costel Pantilimon",
"position":"GK",
"age":"28",
" number":"1",
"photo":"images/costel_pantilimon.png"
},
{
"name":"Vito Mannone",
"position":"GK",
"age":"27",
"number":"25",
"photo":"images/Mannone.png"
}
]
Отображает все объекты JSON в виде списка.
я нажимаю на первом ряду и имя игрока показывается в новой деятельности в простой TextView. Все идет нормально. Проблема в том, что я тоже хочу отображать изображение, и я борюсь с этим.
Вот часть моего кода, который выполняет эту работу в webservice.
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String details = playersList.get(position).getDetails();
//Log.d("Theo", details);
switch (position) {
case 0:
Intent i = new Intent(PlayersList.this, ExtraInfo.class);
i.putExtra("details", details);
startActivity(i);
break;
}
}
private class MyTask extends AsyncTask<String, String, List<Players>> {
@Override
protected void onPreExecute() {
if (tasks.size() == 0) {
pb.setVisibility(View.VISIBLE);
}
tasks.add(this);
}
@Override
protected List<Players> doInBackground(String... params) {
String content = HttpManager.getData(params[0]);
playersList = PlayersJSONParser.parseFeed(content);
for (Players p : playersList) {
try {
String imageUrl = PHOTOS_BASE_URL +p.getPhoto();
InputStream in = (InputStream) new
URL(imageUrl).getContent();
Bitmap bitmap = BitmapFactory.decodeStream(in);
p.setBitmap(bitmap);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return playersList;
}
@Override
protected void onPostExecute(List<Players> result) {
tasks.remove(this);
if (tasks.size() == 0) {
pb.setVisibility(View.INVISIBLE);
}
if (result == null) {
Toast.makeText(PlayersList.this, "Web service not available",
Toast.LENGTH_LONG).show();
return;
}
playersList = result;
updateDisplay();
}
}
И деятельность, которая фактически отображает имя
public class ExtraInfo extends ActionBarActivity {
TextView detailsText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_extra_info);
detailsText = (TextView)findViewById(R.id.detailsText);
String details = getIntent().getStringExtra("details");
Log.d("Extra info", details);
detailsText.setText("" + details);
}
}
Любые идеи о том, как передать изображение в новой деятельности?
Спасибо за чтение моего вопроса,
Тео
не большая проблема. Растровое изображение имеет решающее значение. – Blackbelt