2013-09-16 2 views
0

У меня есть ImageView, который заполнит всю ширину экрана, а также будет анимироваться вверх и вниз, как волна в нижней части экрана. Я использовал scaleType = "matrix", так как он не должен растягиваться, чтобы вписаться в экран.Как я могу запретить Android обрезать мой ImageView?

Однако, как только он был оформлен, Android уронит все, что было снаружи во время обновления макета, поэтому, когда он начинает анимировать нижнюю часть, отсутствует.

Так что мой вопрос в том, как я могу помешать Android обрезать мой ImageView?

+0

Ну попробуйте scaleType: fitxy или, может быть scaleType: centerInside –

ответ

0

я написал класс, который, кажется, чтобы решить эту проблему, подумал я бы поделиться, если кто-то сталкивается с этой проблемой ..

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); 
    } 
} 
Смежные вопросы