前言
很多时候我们都会遇到一些图片显示的情况,譬如将图片整齐划一排列成为三行三列,但是这时候服务端给出来的图片假如没有做过处理,尺寸不一样,或大或小的话,那么我们直接显示是会有问题的,现在就开始解决这问题。
目的
目的如下,用一些示意图显示:
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<TableRow>
<ImageView android:id="@+id/image1" android:background="#aa7799" android:layout_width="100dip" android:layout_height="75dip"/>
<ImageView android:id="@+id/image2" android:background="#3cf6fd" android:layout_width="100dip" android:layout_height="75dip"/>
<ImageView android:id="@+id/image3" android:background="#e5bdf2" android:layout_width="100dip" android:layout_height="75dip"/>
</TableRow>
<TableRow>
<ImageView android:id="@+id/image4" android:background="#f99bba" android:layout_width="100dip" android:layout_height="75dip"/>
<ImageView android:id="@+id/image5" android:background="#9bf9ce" android:layout_width="100dip" android:layout_height="75dip"/>
<ImageView android:id="@+id/image6" android:background="#7678e3" android:layout_width="100dip" android:layout_height="75dip"/>
</TableRow>
<TableRow>
<ImageView android:id="@+id/image7" android:background="#86cbd3" android:layout_width="100dip" android:layout_height="75dip"/>
<ImageView android:id="@+id/image8" android:background="#edc295" android:layout_width="100dip" android:layout_height="75dip"/>
<ImageView android:id="@+id/image9" android:background="#cae39b" android:layout_width="100dip" android:layout_height="75dip"/>
</TableRow>
</TableLayout>
</ScrollView>
</LinearLayout>
package com.example.apppractise.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
/**
* Created by Administrator on 2015/7/10.
*/
public class ImageListTestDemo extends Activity {
private ImageView image1;
private ImageView image2;
private ImageView image3;
private ImageView image4;
private ImageView image5;
private ImageView image6;
private ImageView image7;
private ImageView image8;
private ImageView image9;
@Override
public void onCreate(Bundle savedInstanceState ){
super.onCreate(savedInstanceState);
setContentView(R.layout.page_image_size_list);
preInit();
initUI();
initEvents();
}
private void preInit(){}
private void initUI(){
image1=(ImageView)findViewById(R.id.image1);
image2=(ImageView)findViewById(R.id.image2);
image3=(ImageView)findViewById(R.id.image3);
image4=(ImageView)findViewById(R.id.image4);
image5=(ImageView)findViewById(R.id.image5);
image6=(ImageView)findViewById(R.id.image6);
image7=(ImageView)findViewById(R.id.image7);
image8=(ImageView)findViewById(R.id.image8);
image9=(ImageView)findViewById(R.id.image9);
}
private void initEvents(){}
}
普通加载
什么都不管,异步加载所有图片
结果如下:
额,ok,这样也是可以接受的,毕竟没有变形,服务端的图片各种不一样就不管了。
代码如下
package com.example.apppractise.app;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.ImageView;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
import java.util.ArrayList;
/**
* Created by Administrator on 2015/7/10.
*/
public class ImageListTestDemo extends Activity {
private ImageView image1;
private ImageView image2;
private ImageView image3;
private ImageView image4;
private ImageView image5;
private ImageView image6;
private ImageView image7;
private ImageView image8;
private ImageView image9;
RequestQueue mQueue;
ImageLoader imageLoader;
//--需要加载的图片。
ArrayList<String> imageURLs=new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState ){
super.onCreate(savedInstanceState);
setContentView(R.layout.page_image_size_list);
preInit();
initUI();
initEvents();
beiginTask();
}
private void preInit(){
imageURLs.add("http://d.hiphotos.baidu.com/image/pic/item/b999a9014c086e0606ae084300087bf40ad1cbb7.jpg");//圣斗士
imageURLs.add("http://e.hiphotos.baidu.com/image/pic/item/0e2442a7d933c895a5a5d964d31373f0830200d1.jpg");//小白
imageURLs.add("http://f.hiphotos.baidu.com/image/pic/item/9a504fc2d5628535687a1f2892ef76c6a7ef6325.jpg");//路飞长图。
imageURLs.add("http://c.hiphotos.baidu.com/image/pic/item/37d12f2eb9389b5025aacd5a8735e5dde7116e64.jpg");//火影2
imageURLs.add("http://h.hiphotos.baidu.com/image/pic/item/562c11dfa9ec8a1334d3b3e9f503918fa1ecc0ea.jpg");//夏目友人帐1
imageURLs.add("http://d.hiphotos.baidu.com/image/pic/item/4ec2d5628535e5ddcc1ecbd874c6a7efce1b6282.jpg");//友人帐2
imageURLs.add("http://d.hiphotos.baidu.com/image/pic/item/cf1b9d16fdfaaf51407d686f8d5494eef11f7a40.jpg");//神盾高达
imageURLs.add("http://g.hiphotos.baidu.com/image/pic/item/14ce36d3d539b60054bed1bbeb50352ac65cb74e.jpg");//刹那座机
imageURLs.add("http://h.hiphotos.baidu.com/image/pic/item/8cb1cb1349540923028796799058d109b2de49cf.jpg");//
mQueue= Volley.newRequestQueue(this)
; imageLoader=new ImageLoader(mQueue, new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String url) {
return null;
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
}
});
}
private void initUI(){
image1=(ImageView)findViewById(R.id.image1);
image2=(ImageView)findViewById(R.id.image2);
image3=(ImageView)findViewById(R.id.image3);
image4=(ImageView)findViewById(R.id.image4);
image5=(ImageView)findViewById(R.id.image5);
image6=(ImageView)findViewById(R.id.image6);
image7=(ImageView)findViewById(R.id.image7);
image8=(ImageView)findViewById(R.id.image8);
image9=(ImageView)findViewById(R.id.image9);
}
private void initEvents(){}
private void loadImage(ImageView imageView,String imageUrl,int width,int height){
ImageLoader.ImageListener imageListener=imageLoader.getImageListener(imageView,R.drawable.loading,R.drawable.image_error);
imageLoader.get(imageUrl,imageListener,width,height);
}
private void beiginTask(){
loadImage(image1,imageURLs.get(0),400,400);
loadImage(image2,imageURLs.get(1),400,400);
loadImage(image3,imageURLs.get(2),400,400);
loadImage(image4,imageURLs.get(3),400,400);
loadImage(image5,imageURLs.get(4),400,400);
loadImage(image6,imageURLs.get(5),400,400);
loadImage(image7,imageURLs.get(6),400,400);
loadImage(image8,imageURLs.get(7),400,400);
loadImage(image9,imageURLs.get(8),400,400);
}
}