1.回顾:
花了一天时间写了一个php的一个简单网站,基本实现 :文章的管理及上传图片,最后还实现了基本的安卓接口(为了测试和学习安卓而实现的接口);
这里demo就不分享了,需要的可以私聊我;qq在个人信息里哦;
2.背景
安卓上有十分不错的网络通信框架,之前自己也封装过简单的 数据请求类(点我查看),不过 遇到 图片就不行了!
后来通过度娘,知道了 volley 网络通信框架,基本的 情况我就不在描述,反正是google 出的 很优秀的安卓网络通信 框架。
3.学习目标和重点知识学习
实现 RequsetQueue , 来管理请求队列;
3.1 StringRequset (get / post) : 普通的 字符串
3.2 JsonObjectRequset (get/post) : 把Json数据转换为Json数组
3.3 JsonArrayRequset (这个和JsonObjectRequset 一样,只不过把json数据转换为了Json数组)
3.4 ImageRequest : 请求图片方法1
3.5 ImageLoader :请求图片方法2 (涉及到图片缓存 LruCahce)
3.6 NetworkImageView : 自定义布局实现网络图片加载
3.7 自定义Request 方法 (实现json字符串通过 Gson 转换为 model对象)
4.数据准备
4.1 测试地址(本地的)和参数(id):
http://192.168.0.103:8081/GoodsServers/app/getSharedIfo.php?id=1
4.2 Json数据:
{
"code":1,
"msg":"success",
"data":{
"id":"1",
"tname":"电影",
"addtime":"1439809489",
"name":"机器人帝国",
"note":"三年前,外星机器人入侵地球,经过七天的战斗地球被完全占领。从此之后,机器人对人类严加看管,它们向人类头上安装了定位系统,一旦检测到人类走出家门便将其毁灭。除此之外,外星人雇佣罗宾(本·金斯利 Ben Kingsley 饰)等人类叛徒担任辅助管理工作。罗宾迷恋美丽的妇人凯特(吉莲·安德森 Gillian Anderson 饰),但凯特只痴心等待失踪的丈夫归来。罗宾口口声声称凯特的丈夫早已遇害,不过她的儿子西恩(Callan McAuliffe 饰)并不相信,男孩始终未放弃寻找父亲的努力。某天,西恩意外和康纳(Milo Parker 饰)等伙伴发现令定位系统失效的办法。 孩子们尝试着走出家门,这一变故也让推翻机器人的统治成为可能… 机器人帝国机器人帝国机器人帝国机器人帝国机器人帝国机器人帝国机器人帝国机器人帝国",
"pic":"image/2015080601.jpg",
"url":"magnet:?xt=urn:btih:ed23cbd4377dc8c977c86acb8556085a0bba36de&tr=http://bt.mp4ba.com:2710/announce"
}
}
4.3 安卓布局实现
一个Button ,一个 TextView , 一个ImageView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="22dp"
android:text="Button" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/button1"
android:layout_marginTop="30dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
4.5初始化 控件
private Button btn;
private TextView tv;
private ImageView imageView1;
private NetworkImageView network_image_view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
btn.setOnClickListener(new btnclick());
}
private void initView() {
btn = (Button) findViewById(R.id.button1);
tv = (TextView) findViewById(R.id.textView1);
imageView1=(ImageView)findViewById(R.id.imageView1);
network_image_view=(NetworkImageView)findViewById(R.id.network_image_view);
}
class btnclick implements OnClickListener {
@Override
public void onClick(View v) {
gsonRequset_get();
//networkImageview_get();
//imageLoader_cache();
//imageLoader_get();
//imageRequest_get();
//jsonRequest_post();
//strRequest_post();
//jsonRequest_get();
//strRequest_get();
}
}
5. Volley.jar 免积分下载
http://download.csdn.net/detail/lablenet/9026309