错误膨胀布局customView

时间:2018-01-05 07:31:59

标签: java android xml

我为淡入淡出图片制作了自定义ImageView类。在我测试的情况下,它适用于Android 5.0及更高版本。但是当我尝试在API级别18(Jelly was 4.3)中运行时,我得到了一个Inflating布局错误。 我不知道为什么会收到这个错误。

Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class global.buss.logics.FadeImageView

这是我的班级:

public class FadeImageView extends AppCompatImageView{
private FadeSide mFadeSide;
private Context c;

public enum FadeSide {
    RIGHT_SIDE, LEFT_SIDE, TOP_SIDE, BOTTOM_SIDE
}

public FadeImageView(Context c, AttributeSet attrs, int defStyle) {
    super(c, attrs, defStyle);
    this.c = c;
    init();
}

public FadeImageView(Context c, AttributeSet attrs) {
    super(c, attrs);
    this.c = c;
    init();
}

public FadeImageView(Context c) {
    super(c);
    this.c = c;
    init();
}

private void init() {
    // Enable horizontal/vertical fading
    this.setHorizontalFadingEdgeEnabled(true);
    this.setVerticalFadingEdgeEnabled(true);
    // Apply default fading length
    this.setEdgeLength(14);
    // Apply default side
    this.setFadeDirection(FadeSide.TOP_SIDE);
}

public void setFadeDirection(FadeSide side) {
    this.mFadeSide = side;
}

public void setEdgeLength(int length) {
    this.setFadingEdgeLength(getPixels(length));
}

@Override
protected float getTopFadingEdgeStrength() {
    return mFadeSide.equals(FadeSide.TOP_SIDE) ? 1.0f : 0.0f;
}

@Override
protected float getBottomFadingEdgeStrength() {
    return mFadeSide.equals(FadeSide.BOTTOM_SIDE) ? 1.0f : 0.0f;
}

@Override
protected float getLeftFadingEdgeStrength() {
    return mFadeSide.equals(FadeSide.LEFT_SIDE) ? 1.0f : 0.0f;
}

@Override
protected float getRightFadingEdgeStrength() {
    return mFadeSide.equals(FadeSide.RIGHT_SIDE) ? 1.0f : 0.0f;
}

@Override
public boolean hasOverlappingRendering() {
    return true;
}

@Override
public boolean onSetAlpha(int alpha) {
    return false;
}

private int getPixels(int dipValue) {
    Resources r = c.getResources();
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, r.getDisplayMetrics());
}}

以及我的实施方式。

<global.buss.logics.FadeImageView
    android:id="@+id/bottom_bg_image"
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:scaleType="fitXY"
    android:src="@drawable/mgnrega_vill"
    android:layout_alignParentBottom="true"/>

我有这样的包结构。

enter image description here

任何帮助将不胜感激。提前致谢

0 个答案:

没有答案