package com.wang.text;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.listener.FindListener;
public class MainActivity extends Activity {
String IMAGE_URL = null;
private static final String TAG = null;
ImageView img;
List<String> list = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView) findViewById(R.id.imageone);
Bmob.initialize(this, "9ce1856638d44a6cefdfb67f721d0127");
String newnew = geturl(1);
list.add(newnew);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
testBmob();
}
});
}
private String geturl(int k) {
BmobQuery<Picture> query = new BmobQuery<Picture>();
query.addWhereEqualTo("id", k);
query.findObjects(this, new FindListener<Picture>() {
@Override
public void onError(int arg0, String arg1) {
}
@Override
public void onSuccess(List<Picture> arg0) {
Picture pics = arg0.get(0);
BmobFile pic = pics.getPicture();
IMAGE_URL = pic.getFileUrl(MainActivity.this);
}
});
return IMAGE_URL;
}
private void testBmob() {
String Image_dizhi = list.get(0);
new DownloadImageTask().execute(Image_dizhi);
/*new DownloadImageTask().execute(geturl(1));*/
//我的问题在这 为什么直接调用函数能显示图片,通过list保存url地址然后再取出后为什么安卓应用程序就停止运行了。
}
public void toast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
Log.d(TAG, msg);
}
class DownloadImageTask extends AsyncTask<String, Void, Drawable> {
@Override
protected Drawable doInBackground(String... urls) {
// TODO Auto-generated method stub
return loadImageFromNetwork(urls[0]);
}
protected void onPostExecute(Drawable result) {
img.setImageDrawable(result);
}
private Drawable loadImageFromNetwork(String imageUrl) {
Drawable drawable = null;
try {
drawable = Drawable.createFromStream(
new URL(imageUrl).openStream(), "image.jpg");
} catch (IOException e) {
Log.d("test", e.getMessage());
}
if (drawable == null) {
Log.d("test", "null drawable");
} else {
Log.d("test", "not null drawable");
}
return drawable;
}
}
}