圖片放大縮小

第一、可以通過Matrix物件來變換圖像,在選擇的時候放大,在失去焦點的時候,縮小到原來的大小。

double scale = 1.2;

int width = bm.getWidth();

int height = bm.getHeight();

Log.i("size:", width+"");

float scaleWidth = (float)(scale*width);

float scaleHeight = (float)(scale*height);

Log.i("size:", scaleWidth+"");

Matrix matrix = new Matrix();

matrix.postScale(scaleWidth, scaleHeight);

bm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true);

第二 、通過動畫

<?xml version="1.0" encoding="utf-8"?>

<scale

xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/decelerate_interpolator"

android:fromXScale="1"

android:toXScale="1.1"

android:fromYScale="1"

android:toYScale="1.1"

android:pivotX="50%"

android:pivotY="50%"

android:duration="500">

</scale>

第三、通過setLayoutParams

view.setLayoutParams(new Gallery.LayoutParams(150,150));

int mCounts = g.getCount() - 1;

if(position>0 && (position < mCounts)){

g.getChildAt(position - 1).setLayoutParams(new Gallery.LayoutParams(136, 88));

g.getChildAt(position + 1).setLayoutParams(new Gallery.LayoutParams(136, 88));

}

if(position == 0){

g.getChildAt(position + 1).setLayoutParams(new Gallery.LayoutParams(136, 88));

}

if(position == mCounts){

g.getChildAt(position - 1).setLayoutParams(new Gallery.LayoutParams(136, 88));

}

注釋:其中(136, 88)是gallery中圖片的大小,是在ImageAdapter裡面設置的。(150,150)是選中圖片放大後的大小,可以隨便設置,只要跟(136, 88)區別就行了,是為了觀察變化,我設置的是150而已。

第四 、通過動畫和LayoutParam結合

gallery.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

ImageView v = (ImageView)arg1;

if(tempView != null && v.hashCode() != tempView.hashCode()){

tempView.setLayoutParams(new Gallery.LayoutParams(50,50));

}

v.startAnimation(toLarge);

tempView = v;

v.setLayoutParams(new Gallery.LayoutParams(60,60));

//

//v.setLayoutParams(new Gallery.LayoutParams(130,130));

tvName.setText(tempList.get(arg2).getPicName());

}

@Override

public void onNothingSelected(AdapterView<?> arg0) {

tvName.setText("Nothing selected .");

}

});

參考資料:http://fecbob.pixnet.net/blog/post/35394054-%5Bandroid%5D%E5%9C%96%E7%89%87%E6%94%BE%E5%A4%A7%E7%9A%84%E5%B9%BE%E7%A8%AE%E6%96%B9%E6%B3%95