如何防止 Android 裁剪我的 ImageView?

Posted

技术标签:

【中文标题】如何防止 Android 裁剪我的 ImageView?【英文标题】:How can I prevent Android from cropping my ImageView? 【发布时间】:2013-09-16 14:13:15 【问题描述】:

我有一个 ImageView,它会填满屏幕的整个宽度,并且还会像屏幕底部的波浪一样上下动画。我使用 scaleType="matrix" 因为它不应该拉伸以适应屏幕。

但是,一旦布局完成,android 会裁剪掉布局更新时外部的所有内容,因此一旦开始制作动画,底部就会丢失。

所以我的问题是,

【问题讨论】:

试试 scaleType:fitxy 或者 scaleType:centerInside 【参考方案1】:

我写了一个似乎可以解决问题的课程,如果其他人遇到这个问题,我会分享它..

import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.ImageView;

public class NoCropImageView extends ImageView

    private int fixedWidth = 0;
    private int fixedHeight = 0;

    private int[] attrsArray = new int[]  android.R.attr.layout_width, android.R.attr.layout_height ;

    public NoCropImageView(final Context context, final AttributeSet attrs)
    
        super(context, attrs);

        TypedArray ta = context.obtainStyledAttributes(attrs, attrsArray);
        int layout_width = ta.getDimensionPixelSize(0, ViewGroup.LayoutParams.MATCH_PARENT);
        int layout_height = ta.getDimensionPixelSize(1, ViewGroup.LayoutParams.MATCH_PARENT);
        ta.recycle();

        fixedWidth = layout_width;
        fixedHeight = layout_height;
    

    @Override
    protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec)
    
        this.setMeasuredDimension(fixedWidth, fixedHeight);
    

【讨论】:

以上是关于如何防止 Android 裁剪我的 ImageView?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 uib-carousel 裁剪 uib-popover?

如何防止网站在手机上显示裁剪图像?

如何在 Android 中水平滚动 ImageView?

图像裁剪器:如何防止默认的拖放操作?

如何自动中心裁剪ImageView Android?

如何使用默认裁剪意图裁剪 android marshmallow 中的图像?