package com.example.addtextview;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

private String []product_pic_array = {"url","url"};
private String []product_title_array = {"11","22"};

private TextView title;
private ImageView pic ;
private LinearLayout ll_product ;
private int row = 0;
/**
* 远程读取文件
* @param imagePath
* @return
*/
public static Bitmap getBitmapFromServer(String imagePath) {

HttpGet get = new HttpGet(imagePath);
HttpClient client = new DefaultHttpClient();
Bitmap pic = null;
try {
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();

pic = BitmapFactory.decodeStream(is); // 关键是这句代码

} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return pic;
}


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.activity_main );

// 取得LinearLayout 物件
ll_product = (LinearLayout)findViewById(R.id.ll_product);
// 将TextView 加入到LinearLayout 中

if(product_pic_array!=null && product_pic_array.length==1){
new GetDataTask().execute(); //必须在新的线程中执行读取文件
}else{
new GetDataTask().execute();
}

}


//异步请求类
private class GetDataTask extends AsyncTask<Void, Void, List<ImageView>> {

protected List<ImageView> doInBackground(Void... params) {
List<ImageView> list = new ArrayList<ImageView>();
try {
for(int i=0;i<product_pic_array.length;i++){
Bitmap bitmap = getBitmapFromServer(product_pic_array[i]);
pic = new ImageView(MainActivity.this);
pic.setImageBitmap(bitmap);
list.add(pic);
}
} catch (Exception e) {
System.out.println(e);
}
return list;

}
protected void onPostExecute(List<ImageView> list) {
//在线程执行时不能把添加布局
if(list!=null && list.size()==1){
pic = (ImageView)list.get(0);
ll_product.addView(pic);//向布局中动态输入图片

title = new TextView(MainActivity.this); //向布局中动态输入TextView
title.setText(product_title_array[0]);
ll_product. addView (title);
}else{
for(int i=0;i<list.size();i++){
pic = (ImageView)list.get(i);
//设置图片高度宽度
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
pic.setLayoutParams(layoutParams);
ll_product.addView(pic);
}
}


}

}
}

更多相关文章

  1. Android布局文件.xml中的自定义属性
  2. view page 布局tab
  3. Android聊天界面布局实例
  4. android反射获取资源
  5. Android中常用工具类
  6. ToastUtil
  7. SwipeRefreshLayout使用
  8. 84 Android(安卓)Hnadler 封装下载图片工具类
  9. Android(安卓)AsyncTask 分析

随机推荐

  1. Android 模拟器 GPU ON
  2. Android近场通信---NFC基础(五)
  3. android lib 发布到jcenter
  4. 关于使用 Android MVVM + LiveData 模式
  5. Android 学习资料(一)
  6. Android Studio开发——百度地图定位
  7. layer-list 的用法
  8. fir.im Weekly - 如何进行 Android App
  9. React-Native:调用(Android)Native方法
  10. Android电话Phone设计框架介绍