【Volley】加载图片和StringRequest

两个页面,一个实现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 = "https://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() {
				@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 = "https://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);
	}	
}


你可能感兴趣的:(Java,Android,控件)