Android

Wesley13
• 阅读 506
public class MainActivity extends Activity {
private TextView result;
private ItemAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建请求队列
// volley可以下载网页、图片、json
final RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
result = (TextView) findViewById(R.id.downloadresult);

// 创建请求
String url = "http://192.168.48.104/h.txt";
// 参数 1——url 2——下载成功相应 3——下载失败响应
StringRequest stringRequest = new StringRequest(url,
new Response.Listener<String>() {
// 下载完成,回调
@Override
public void onResponse(String response) {
// TODO Auto-generated method stub
System.out.println("=================" + response);
result.setText(response);
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
System.out.println("=================下载失败");
result.setText("网页下载失败");
}
});
// 添加请求到请求队列
// queue.add(stringRequest);

// 二、下载图片
// 参数 1——图片URL 2——下载成功响应 3——图片宽度 4——图片高度(0为原高)5——下载失败响应
String imagUrl = "http://b.hiphotos.baidu.com/image/pic/item/b219ebc4b74543a9030fb57e1d178a82b901146f.jpg";
ImageRequest imageRequest = new ImageRequest(imagUrl,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
// TODO Auto-generated method stub
ImageView img = (ImageView) findViewById(R.id.img);
img.setImageBitmap(response);
result.setText("图片下载成功!");
}
}, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
result.setText("图片下载失败!");
}
});
// queue.add(imageRequest);
// 下载json
// String jsonUrl = "http://bcs.duapp.com/openclass/images%2Fdata.json";
String jsonUrl = "http://121.42.13.103/cyberHotel/1.txt";
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(jsonUrl,
new Response.Listener<JSONArray>() {
private String name;
private String image;

@Override
public void onResponse(JSONArray response) {
// TODO Auto-generated method stub
// 解析Json
ArrayList<ItemData> data = new ArrayList<ItemData>();
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jsonObject = response
.getJSONObject(i);
name = jsonObject.getString("name");
image = jsonObject.getString("image");
// 封装name image
ItemData item = new ItemData(name, image);
data.add(item);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ListView list = (ListView) findViewById(R.id.list);
result.setText("Json解析成功");
adapter = new ItemAdapter(MainActivity.this, data,queue);
list.setAdapter(adapter);
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
}
});
queue.add(jsonArrayRequest);
}
}



public class ItemAdapter extends BaseAdapter {
Context context;
ArrayList<ItemData> data;
LayoutInflater inflater;
private ImageLoader imageLoader;


public ItemAdapter(Context context, ArrayList<ItemData> data,RequestQueue queue) {
super();
this.context = context;
this.data = data;
inflater = inflater.from(context);
imageLoader=new ImageLoader(queue, new ImageCache() {

//存图片
@Override
public void putBitmap(String url, Bitmap bitmap) {
// TODO Auto-generated method stub
File cacheDir = ItemAdapter.this.context.getExternalCacheDir();
String fileName=getFileName(url);
//缓存文件
File file = new File(cacheDir,fileName);
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getFileName(String url){
String[] split = url.split("/");
return split[split.length-1];

}

//取图片
@Override
public Bitmap getBitmap(String url) {
// TODO Auto-generated method stub
File cacheDir = ItemAdapter.this.context.getExternalCacheDir();
String fileName = getFileName(url);
File file = new File(cacheDir,fileName);
//判断文件是否存在
if(file.exists()){
return BitmapFactory.decodeFile(file.getPath());
}
return null;

}
});
}


@Override
public int getCount() {
// TODO Auto-generated method stub
return data.size();
}


@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}


@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}


@Override
public View getView(int position, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
LinearLayout layout = (LinearLayout) inflater.inflate(
R.layout.listitem, null);
TextView name = (TextView) layout.findViewById(R.id.item_text);
NetworkImageView image = (NetworkImageView) layout.findViewById(R.id.item_image);
name.setText(data.get(position).getName().toString());

System.out.println("======================"+position);
image.setDefaultImageResId(R.drawable.ic_launcher);
//设置图片
image.setImageUrl(data.get(position).getImage(), imageLoader);
return layout;
}
}






public class ItemData {

public ItemData() {
super();
}
public ItemData(String name, String image) {
super();
this.name = name;
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
private String name;
private String image;
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
 android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <TextView
        android:id="@+id/downloadresult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
<ListView 
   android:id="@+id/list"
   android:layout_width="match_parent"
android:layout_height="match_parent"
   ></ListView>
</LinearLayout>

listitem.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <com.android.volley.toolbox.NetworkImageView 
        android:id="@+id/item_image"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/ic_launcher"
        />
    <TextView 
        android:id="@+id/item_text"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:gravity="center_vertical"
        android:layout_marginLeft="20dp"
        />
</LinearLayout>
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这