Android自定义控件之酷狗音乐皮肤界面缩放预览
2017-10-25 09:51
363 查看
酷狗音乐的这个皮肤预览功能,是将整个界面缩小,就是将canvas缩小。 public class ScaleRelativeLayout extends RelativeLayout { float scale = 1; float mViewHeight; float mScreenWidth, mScreenHeight; public ScaleRelativeLayout(Context context) { this(context,null); } public ScaleRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void dispatchDraw(Canvas canvas) { canvas.save(); canvas.translate(0, (mScreenHeight - mViewHeight) / 2); canvas.scale(scale, scale, mScreenWidth / 2, mScreenHeight / 2); super.dispatchDraw(canvas); canvas.restore(); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { if (mScreenHeight != 0) { scale = (mViewHeight - getPaddingTop() - getPaddingBottom()) / mScreenHeight; } super.onSizeChanged(w, h, oldw, oldh); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(getDefaultSize(0, widthMeasureSpec), getDefaultSize(0, heightMeasureSpec)); mViewHeight = getMeasuredHeight(); mScreenHeight = ScreenUtils.getScreenHeight(getContext()); mScreenWidth = ScreenUtils.getScreenWidth(getContext()); super.onMeasure(MeasureSpec.makeMeasureSpec((int) mScreenWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec( (int) mScreenHeight, MeasureSpec.EXACTLY)); } }
参考:Android自定义控件
相关文章推荐
- Android中侧滑菜单效果实现(主界面和菜单界面实现平移、缩放、滚动动画)
- Android自定义控件实战——仿淘宝商品浏览界面
- Android社交系统----界面预览
- 用android的多点触控来缩放界面的字体
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
- android 编辑彩信,加入几页铃声,预览暂停界面,铃声名字不见了
- Android 自定义控件之三点循环缩放
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- Android自定义控件实战——仿淘宝商品浏览界面
- Android 实现图片自动缩放自定义控件
- 【Android自定义控件】聊天界面录音按钮的实现
- Android 手势检测实战 打造支持缩放平移的图片预览效果(上)
- Android手势识别 Camera 预览界面上显示文字 布局注意事项(merge布局)
- Android 手势检测实战 打造支持缩放平移的图片预览效果(上)
- android:自定义控件皮肤
- Android自定义控件实战——仿淘宝商品浏览界面
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- 转洋神博客android缩放平移图片预览(双击放大,单击还原)