android网上下载图片存在本地并在Listview上显示
来源:互联网 发布:文怡小虫淘宝 编辑:程序博客网 时间:2024/04/30 07:23
内含搜索功能,因为公司项目所以不展示
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.ScrollView;
import android.widget.TextView;
import com.beem.project.beem.R;
public class PhoinixAddContact extends Activity implements OnClickListener,OnTouchListener {
private PhoinixSearchEditText text;
private TextView ok_btn;
private TextView total_tv;
private ImageButton operate_btn;
private ListView contact_list;
private ProgressDialog dig;
listViewAdapter adapter;
private ScrollView scrollview;
private int i=0; //listview显示的个数
private int total; //总共的数据个数
LinearLayout.LayoutParams linearParams;
ProgressBar progressbar;
final Handler handler = new Handler();
final Runnable UpdateResults = new Runnable() {
public void run() {
updateUI();
}
};
final Runnable UpdateProgress = new Runnable() {
public void run() {
updateProgress();
}
};
public PhoinixAddContact(){
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phoinix_add_contact);
findView();
setListener();
adapter=new listViewAdapter();
contact_list.setAdapter(adapter);
}
public void findView(){
text=(PhoinixSearchEditText)findViewById(R.id.phoinix_search_friend_text);
ok_btn=(TextView)findViewById(R.id.phoinix_search_friend_ok);
operate_btn=(ImageButton)findViewById(R.id.phoinix_search_friend_operate_btn);
contact_list=(ListView)findViewById(R.id.phoinix_search_contact_list);
total_tv=(TextView)findViewById(R.id.phoinix_search_total_text);
scrollview=(ScrollView)findViewById(R.id.scrollview);
progressbar=(ProgressBar)findViewById(R.id.progressbar);
}
public void setListener(){
text.addTextChangedListener(watcher);
ok_btn.setOnClickListener(this);
operate_btn.setOnClickListener(this);
scrollview.setOnTouchListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.phoinix_search_friend_operate_btn:
operateClick();
break;
case R.id.phoinix_search_friend_ok:
okClick(v);
break;
}
}
public void operateClick(){
if(!text.getText().toString().equals("")){
text.setText("");
operate_btn.setBackgroundResource(R.color.white);
}
}
//监听文本框事件
private TextWatcher watcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
if(!text.getText().toString().equals("")){
operate_btn.setBackgroundResource(R.drawable.phoinix_icon_delete);
}
else if(text.getText().toString().equals("")){
operate_btn.setBackgroundResource(R.color.white);
}
}
};
//点击查找按钮
public void okClick(View v){
if(text.getText().toString().equals("")){
operate_btn.setBackgroundResource(R.drawable.phoinix_ico_wrong);
PhoinixWarnPopupWindow pop=new PhoinixWarnPopupWindow(v);
pop.showLikeQuickAction(0,-400);
}
else{
dig= ProgressDialog.show(PhoinixAddContact.this, "查询中...", "请稍等...", true, false);
i=10;
new Thread(){
@Override
public void run() {
try {
Thread.sleep(3000);
dig.dismiss();
handler.post(UpdateResults);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}.start();
linearParams = (LinearLayout.LayoutParams) contact_list.getLayoutParams();
String[] strings={"name1","name2","name3","name4","name5","name6","name7","name8","name9","name10","name11",
"name2","name3","name4","name5","name6","name7","name8","name9","name10","name3","name4","name5","name6","name7","name8","name9","name10",
"name3","name4","name5","name6","name7","name8","name9","name10"};
String[] paths = new String[strings.length];
total=strings.length;
linearParams.height = (730/10)*i;
contact_list.setLayoutParams(linearParams);
adapter.strings=strings;
adapter.paths=paths;
total_tv.setText("总共有"+strings.length+"人");
adapter.notifyDataSetChanged();
contact_list.setVisibility(View.VISIBLE);
}
}
//重新赋值,显示头像
public void updateUI(){
String[] paths = {"http://www.qqgexingwu.cn/uploads/allimg/101108/23515T112-0.gif",
"http://www.qqgexingwu.cn/uploads/allimg/101108/23515S555-1.gif",
"http://www.qqjay.com/uploads/allimg/090524/1U5294193-15.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957697.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959127.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957538.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959605.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132958829.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132955272.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqjay.com/uploads/allimg/090524/1U5294193-15.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957697.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959127.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957538.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959605.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132958829.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132955272.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957697.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959127.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957538.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959605.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132958829.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132955272.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957697.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959127.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132957538.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132959605.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132958829.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/2010427132955272.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif",
"http://www.qqwmh.com/qqtx/UploadPic/2010-4/201042713301726.gif"};
adapter.paths=paths;
adapter.notifyDataSetChanged();
}
public void updateProgress(){
progressbar.setVisibility(View.GONE);
linearParams.height = (730/10)*i;
adapter.notifyDataSetChanged();
}
public void ProgressThread(){
new Thread(){
@Override
public void run() {
try {
Thread.sleep(2000);
handler.post(UpdateProgress);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}.start();
}
//提示窗体
private class PhoinixWarnPopupWindow extends BetterPopupWindow implements OnClickListener {
public PhoinixWarnPopupWindow(View anchor) {
super(anchor);
}
@Override
protected void onCreate() {
// inflate layout
LayoutInflater inflater =(LayoutInflater) this.anchor.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.phoinix_contact_warn_dialog, null);
this.setContentView(view);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
//listViewAdapter
class listViewAdapter extends BaseAdapter {
private int count;
private ImageView img_head;
private TextView name_tv;
private ImageView img_add;
private String[] strings = {""};
private String[] paths = {""};
listViewAdapter(){
}
public int getCount() {
count=i;
return count;
}
public Object getItem(int pos) {
return pos;
}
public long getItemId(int pos) {
return pos;
}
public View getView(int position, View view, ViewGroup p) {
LayoutInflater inflater=LayoutInflater.from(PhoinixAddContact.this);
view=inflater.inflate(R.layout.phoinix_search_contact_list, null);
img_head=(ImageView) view.findViewById(R.id.phoinix_search_contact_image);
img_add=(ImageView) view.findViewById(R.id.phoinix_search_contact_add);
name_tv=(TextView) view.findViewById(R.id.phoinix_search_contact_name);
img_head.setTag(paths[position]);
name_tv.setText(strings[position]);
new CanvasImageTask().execute(img_head);
img_head.setDrawingCacheEnabled(true);
return view;
}
}
//异步处理远程图片
public class CanvasImageTask extends AsyncTask<ImageView, Void, Drawable> {
private ImageView gView;
protected Drawable doInBackground(ImageView... views) {
Drawable drawable = null;
ImageView view = views[0];
// 根据iconUrl获取图片并渲染,iconUrl的url放在了view的tag中。
if (view.getTag() != null) {
try {
URL url = new URL(view.getTag().toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
drawable = Drawable.createFromStream(stream, "src");
stream.close();
} catch (Exception e) {
Log.v("img", e.getMessage());
return null;
}
}
this.gView = view;
return drawable;
}
protected void onPostExecute(Drawable drawable) {
if (drawable != null) {
//此处更新图片
this.gView.setBackgroundDrawable(drawable);
this.gView = null;
}
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction()==MotionEvent.ACTION_DOWN){
if(i<=total-(total-10)%6-6){
progressbar.setVisibility(View.VISIBLE);
i+=6;
ProgressThread();
}
else if(i==total-(total-10)%6){
progressbar.setVisibility(View.VISIBLE);
i+=(total-10)%6;
ProgressThread();
}
else{
i=total;
}
}
return false;
}
}
- android网上下载图片存在本地并在Listview上显示
- Android 从网上下载图片并显示到ListView上
- android 下载图片到本地并显示
- Android 网上下载图片 保存在文件中 更新listview
- Android中从网上下载一张图片显示进度并显示下载好的图片
- 从网上读取图片在本地显示
- 网上获取图片,展现在ListView上,
- Android打开本地相册选取图片并显示在ImageView上
- Android 使用URL下载图片到本地并显示
- android开发实现下载网页图片到本地并显示
- listView显示网路图片,并保存本地
- Android下载网络图片并保存在本地相册
- 使用异步任务下载图片并显示在UI上
- 使用 AsyncTask 下载图片,并在下载前设置本地图片显示
- [unity3d]下载网上的图片并保存到本地
- android 从网页上下载图片并显示出来.
- 实现从网上下载大量图片在GridView上显示过程中遇到的一些问题
- 从指定网址下载文件 并读出其内容 && 从网上下载文件放在本地&&从网上获取图片设在imageView里
- windows7下为Microsoft SQL2008 Analysis Services 远程访问配置 Windows 防火墙
- 实习日记035(9月5日)
- SOCKADDR结构
- service 的两种启动方式:
- 如何访问google.com[转]
- android网上下载图片存在本地并在Listview上显示
- php 首字母及"_"后首字母都要大写(实现字符串中"open_door"转换成"OpenDoor")
- oracle表分区
- 怎样提高自己的分析能力
- lucene核心类详解
- Android Camera Architecture (Android Camera架构)
- 第2章 抽象工厂模式(Abstract Factory)
- flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
- 使用rowid查找表中唯一记录