Android中实现Gallery 点击放大
16lz
2022-08-05
Android中实现Gallery 点击放大
图片放大的思路:
第一、可以通过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)); }
第四 、通过动画和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://www.eoeandroid.com/code/2012/0315/945.html
更多相关文章
- Android(安卓)Activity界面切换添加动画特效
- android实现字体闪烁动画的方法
- Android:interpolator用法
- Android调用.NET Webservice报org.ksoap2.serialization.SoapPri
- 创建android逐帧动画的两种方式
- Android(安卓)Activity界面切换添加动画特效
- android dialog 动画
- Android(安卓)属性动画(Property Animation) 完全解析 (下)
- Android(安卓)后台任务(五)Service