[英]load Image from URL issue
我有一個onClickListener,它應該調用一個顯示靜態URL並顯示圖像的類。 我在被叫班上敬酒,但沒有顯示圖像。 list.onClickListener應該調用ShowImage類,該類應該發布圖像。 請幫助我不確定我在做什么錯。
注意*在我的main_layout.xml中,我有一個imageview。
package com.flash_tattoo;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
ListView list;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
Bundle bundle = getIntent().getExtras();
String jsonData = bundle.getString("jsonData");
JSONArray jsonArray;
try {
jsonArray = new JSONArray(jsonData);
String[] mStrings = new String[jsonArray.length()];
String[] mImages = new String[jsonArray.length()];
String[] mPath = new String[jsonArray.length()];
for (int i=0; i<jsonArray.length(); i++)
{
String url = jsonArray.getJSONArray(i).getString(2);
mStrings[i] = "http://www.2020mediaonline.com/tattoo/thumbnail_image/" + url;
String image_name = jsonArray.getJSONArray(i).getString(1);
mImages[i] = image_name;
String path_name = jsonArray.getJSONArray(i).getString(1);
mPath[i] = path_name;
}
list=(ListView)findViewById(R.id.list);
adapter=new LazyAdapter(this, mStrings, mImages);
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
ShowImage go = new ShowImage();
Toast.makeText(MainActivity.this, "In onClick", Toast.LENGTH_LONG).show();
}
});
Button b=(Button)findViewById(R.id.button1);
b.setOnClickListener(listener);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
class ShowImage extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
ImageView imgView =(ImageView)findViewById(R.id.ImageView01);
Drawable drawable = LoadImageFromWebOperations("http://www.ansi.okstate.edu/breeds/other/llama/llama1.jpg");
imgView.setImageDrawable(drawable);
Toast.makeText(MainActivity.this, "show big image", Toast.LENGTH_LONG).show();
}
private Drawable LoadImageFromWebOperations(String url)
{
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}catch (Exception e) {
System.out.println("Exc="+e);
return null;
}
}
}
@Override
public void onDestroy()
{
adapter.imageLoader.stopThread();
list.setAdapter(null);
super.onDestroy();
}
public OnClickListener listener=new OnClickListener(){
@Override
public void onClick(View arg0) {
Intent myIntent = new Intent(MainActivity.this,flash_tattoo.class);
startActivityForResult(myIntent, 0);
}
};
}
我建議您使用AsyncTask加載位圖並將其填充到imageView中,您可以通過以下鏈接找到更多詳細信息:
http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html
希望這可以幫到你。
您不能使用構造函數來啟動新活動。 您必須為此使用startActivity()
。 所以我不明白為什么您期望ShowImage go = new ShowImage()
做任何事情。 它只是一個空的默認構造函數。
這就是您要尋找的。 謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.