实现的的效果
描述:一开始是完全显示的,然后高度慢慢减少,图片自上而下消失。还有就是左右慢慢展开
分析:这个效果看似很简单,但是实际上根据常规的android机制,是很难以实现的。
解决方案
想了很久,突然联想到MeasureSpec的三种情况(自适应,合父布局一样和绝对大小)。感觉图像设置为绝对大小并且靠底部对齐。然后自上而下减少外布局高度,应该可以实现效果。
一、慢慢折叠与向下展开动画
1.自定义绝对大小的Imageview
package com.ruidde.csndresourcedemo.img; import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.widget.ImageView; import androidx.annotation.Nullable; @SuppressLint("AppCompatCustomView") public class AnimImageView extends ImageView { private static final int IMAGE_HEIGHT = 500; public AnimImageView(Context context) { super(context); } public AnimImageView(Context context, @Nullable AttributeSet attrs) { super(context, attrs, 0); } public AnimImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr, 0); } /** * 设置的高度最好是bitmap的高度,这样不好压缩变形。这里写死了 * @param widthMeasureSpec 宽度 * @param heightMeasureSpec 高度 */ @O