Week2
来源:互联网 发布:室内装修设计软件 编辑:程序博客网 时间:2024/05/17 03:49
MainActivity
package wangwenqian.bwie.com.week02;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List<Bean.ResultBean.DataBean.StepsBean> lists;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源ID
listView = (ListView) findViewById(R.id.lv);
String str = "http://apis.juhe.cn/cook/query.php";
new Asynk().execute(str);
}
class Asynk extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
String str = strings[0];
String data = getData(str);
return data;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.ResultBean.DataBean> data = bean.getResult().getData();
for (Bean.ResultBean.DataBean list:data
) {
lists = list.getSteps();
runOnUiThread(new Runnable() {
@Override
public void run() {
listView.setAdapter(new Myadapter());
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(MainActivity.this,HomeActivity.class);
intent.putExtra("name",lists.get(i).getStep());
intent.putExtra("img",lists.get(i).getImg());
startActivity(intent);
}
});
}
});
}
}
}
public String getData(String str){
try {
URL url = new URL(str);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
String name = "key=3220a0424d486f8953af8a4a42f17f8e&menu=秘制红烧肉";
OutputStream outputStream = connection.getOutputStream();
outputStream.write(name.getBytes());
if (connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
String json = getJson(inputStream);
if (!TextUtils.isEmpty(json)){
return json;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private String getJson (InputStream inputStream){
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer))!=-1){
bos.write(buffer,0,len);
}
bos.close();
inputStream.close();
return bos.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
class Myadapter extends BaseAdapter{
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int i) {
return lists.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder = null;
if (view==null){
view = View.inflate(MainActivity.this, R.layout.item, null);
holder = new ViewHolder();
holder.imageView = (ImageView) view.findViewById(R.id.img);
holder.textView = (TextView) view.findViewById(R.id.tv);
holder.textView.setText(lists.get(i).getStep());
getImg(lists.get(i).getImg(),holder.imageView);
view.setTag(holder);
}else {
holder = (ViewHolder) view.getTag();
}
return view;
}
class ViewHolder{
ImageView imageView;
TextView textView;
}
}
private void getImg(String path, final ImageView imageView){
new AsyncTask<String,Void,Bitmap>(){
@Override
protected Bitmap doInBackground(String... strings) {
try {
String path = strings[0];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
if (connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if (bitmap!=null){
imageView.setImageBitmap(bitmap);
}else{
imageView.setImageResource(R.mipmap.ic_launcher);
}
}
}.execute(path);
}
}
HomeActivity
package wangwenqian.bwie.com.week02;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HomeActivity extends AppCompatActivity {
private ImageView img2;
private TextView tv2;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
img2 = (ImageView) findViewById(R.id.img2);
tv2 = (TextView) findViewById(R.id.tv2);
Intent intent = getIntent();
String name = intent.getStringExtra("name");
final String img = intent.getStringExtra("img");
tv2.setText(name);
new Thread(new Runnable() {
@Override
public void run() {
try {
URL imgurl = new URL(img);
final Bitmap bitmap = LoadImg(imgurl);
runOnUiThread(new Runnable() {
@Override
public void run() {
img2.setImageBitmap(bitmap);
}
});
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}).start();
}
private Bitmap LoadImg(final URL Imgurl) {
try {
HttpURLConnection connection = (HttpURLConnection) Imgurl.openConnection();
if(200==connection.getResponseCode()){
InputStream is = connection.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len = 0;
byte[] bt = new byte[1];
while((len=is.read(bt))!=-1){
baos.write(bt,0,len);
}
Bitmap bitmap = BitmapFactory.decodeByteArray(baos.toByteArray(), 0, baos.size());
return bitmap;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
- week2
- Week2
- week2
- Week2
- week2
- week2
- test Week2
- FERMI-week2
- ARA-week2
- week2总结
- Oct week2
- NO2.week2
- leetcode week2
- Leetcode Week2
- 记录week2
- LeetCode Week2
- Algorithm-week2
- LeeCode Week2
- 多线程详解
- POJ 3740 Easy Finding 跳舞链模板
- MyBatis 笔记(一)——快速入门
- 一个小项目
- CodeForces
- Week2
- D
- 线段树
- 去电流程分析---之二
- JDK自带工具类
- RCNN学习笔记(0):rcnn简介
- const引用const指针以及constexpr
- 陈皓写的性能调优
- POJ 2376 Cleaning Shifts