两个页面,一个实现Volley加载图片,一个接收图片的url地址并显示;对应两个类。
加载图片的布局:
两个按钮上方是空白的ImageView组件,点击MakeVolleyImage按钮加载图片,点击ShowImageUrl按钮传递图片的url,跳转页面,布局如下:
GoBackToImage按钮上面是一个空白的TextView组件,点击按钮返回上一个加载图片的页面。
Main.java 用ImageView加载图片
package com.yan.jsontest; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.ImageLoader; import com.android.volley.toolbox.ImageLoader.ImageCache; import com.android.volley.toolbox.ImageLoader.ImageListener; import com.android.volley.toolbox.ImageRequest; import com.android.volley.toolbox.NetworkImageView; import com.android.volley.toolbox.Volley; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.support.v4.util.LruCache; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class Main extends Activity { private ImageView imageView; //private NetworkImageView networkImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //为组件申请空间,布局中所有的组件都要在此申请空间。 imageView = (ImageView) findViewById(R.id.imageView); //按钮触发点击事件 Button btn_do = (Button) findViewById(R.id.btn_Volley); btn_do.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { doVolley(v) ; } } ); //图片触发点击事件 ImageView iv_url = (ImageView) findViewById(R.id.imageView); iv_url.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { doTurn(v); } }); Button btn_turn = (Button) findViewById(R.id.btn_String); btn_turn.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { doTurn(v); } }); } /* * Volley 使用方法 * Step 1:为RequestQueue申请空间,只需一次 * Step 2:编写ImageRequest(url, Listener, x, y, color, ErrorListener) * Step 3:将ImageRequest变量加入RequestQueue变量中 * * */ public void doVolley(View v) { RequestQueue mQueue = Volley.newRequestQueue(getBaseContext()); String requestUrl = "http://img.my.csdn.net/uploads/201404/13/1397393290_5765.jpeg" ; /* * ImageRequest中有六个参数,分别是: * 1.图片的URL地址 * 2.图片请求成功的回调,我们把返回的Bitmap参数设置到imageView中 * 3,4.允许图片的最大宽度和高度。0 表示无论图片多大,都不会进行压缩 * 5.颜色属性。其中,ARGB_8888可以展示最好的颜色属性,每个图片像素占据4个字节的大小,而RGB_565则表示每个图片像素占据2个字节大小。 * 6.图片请求失败的回调,我是设置的在LogCat中反馈信息。 * * */ ImageRequest imageRequest = new ImageRequest(requestUrl, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap response) { imageView.setImageBitmap(response); } },0, 0, Config.RGB_565, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } }); mQueue.add(imageRequest); } /* * Intent 页面跳转,参数传递 * * */ public void doTurn(View v) { String requestUrl = "http://img.my.csdn.net/uploads/201404/13/1397393290_5765.jpeg" ; Intent in = new Intent(Main.this, VString.class); in.putExtra("imageurl", requestUrl); startActivity(in); } }
VString.java
package com.yan.jsontest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class VString extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vstring); //Intent 接收参数 Intent in = this.getIntent(); String imageUrl = in.getStringExtra("imageurl"); TextView tv_show = (TextView) findViewById(R.id.tv_url); tv_show.setText(imageUrl); Button btn_back = (Button) findViewById(R.id.btn_back); btn_back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { goBack(v); } }); } public void goBack(View v) { Intent in = new Intent(VString.this, Main.class); startActivity(in); } }