Android 重写Gallery 左对齐
来源:互联网 发布:二宫和也 知乎 编辑:程序博客网 时间:2024/04/30 06:53
修改xml成自定义的HorizontalGallery类:
package com.easyder.gotone.util;import android.R.attr;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Camera;import android.graphics.Matrix;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.animation.Transformation;import android.widget.Gallery;public class HorizontalGallery extends Gallery {private Camera mCamera;private int mWidth;private int mPaddingLeft;private boolean flag;private static int firstChildWidth;private static int firstChildPaddingLeft;public HorizontalGallery(Context context) {super(context);mCamera = new Camera();this.setStaticTransformationsEnabled(true);}public HorizontalGallery(Context context, AttributeSet attrs) {super(context, attrs);mCamera = new Camera();// setAttributesValue(context, attrs);this.setStaticTransformationsEnabled(true);}public HorizontalGallery(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);mCamera = new Camera();// setAttributesValue(context, attrs);this.setStaticTransformationsEnabled(true);}private void setAttributesValue(Context context, AttributeSet attrs) {TypedArray typedArray = context.obtainStyledAttributes(attrs, new int[]{attr.paddingLeft});mPaddingLeft = typedArray.getDimensionPixelSize(0, 0);typedArray.recycle();}protected boolean getChildStaticTransformation(View child, Transformation t) {t.clear();t.setTransformationType(Transformation.TYPE_MATRIX);mCamera.save();final Matrix imageMatrix = t.getMatrix();final int imageHeight = child.getLayoutParams().height;final int imageWidth = child.getLayoutParams().width;if (flag) {firstChildWidth = getChildAt(0).getWidth();firstChildPaddingLeft = getChildAt(0).getPaddingLeft();flag = false;}mCamera.translate(firstChildWidth / 2 + firstChildPaddingLeft + mPaddingLeft - mWidth / 2, 0f, 0f);mCamera.getMatrix(imageMatrix);mCamera.restore();return true;}protected void onSizeChanged(int w, int h, int oldw, int oldh) {if (!flag) {mWidth = w;getLayoutParams().width = mWidth;flag = true;}super.onSizeChanged(w, h, oldw, oldh);}@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {return false;}@Overridepublic boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {return super.onScroll(e1, e2, distanceX, distanceY);}}
0 0
- Android 重写Gallery 左对齐
- Android 实现Gallery左对齐,选中Item不滑动效果
- Android 实现Gallery左对齐,选中Item不滑动效果
- Android Toolbar左、中、右对齐
- android 让gallery中图片默认居左显示
- Gallery左移
- 向左对齐的Gallery
- 向左对齐的Gallery
- 向左对齐的Gallery
- 重写已被弃用的Gallery
- 左对齐和右对齐
- Android 自定义 TextView drawableTop 图标与文字左对齐(效果图)
- Button 左对齐
- mathtype方程组左对齐
- Uibutton 左对齐
- alertview 左对齐
- UISearchBar placeholder左对齐
- button文字左对齐
- 手动12 - 安装php加速器 Zend OPcache
- webview 2.3.x系统时shouldOverrideUrlLoading不起作用
- 乌克兰示威两派民众爆冲突 致一人死亡16人受伤
- 简谈RAID0+1和RAID5的区别和优缺点
- MongoDB整合Spring(Maven项目)
- Android 重写Gallery 左对齐
- mac下如何写shell脚本
- VC++自定义单文档应用程序界面图标以及 *.exe 桌面图标
- 单例模式
- 查询oracle自带的表
- ■Android中尺寸单位杂谈
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- 使用zlib库里的compress函数与uncompress函数
- vector 静态成员变量的初始化