|
|
@ -5,9 +5,14 @@ import android.graphics.Canvas; |
|
|
|
import android.graphics.Color; |
|
|
|
import android.graphics.drawable.ColorDrawable; |
|
|
|
import android.graphics.drawable.Drawable; |
|
|
|
|
|
|
|
import androidx.annotation.Nullable; |
|
|
|
import androidx.core.content.ContextCompat; |
|
|
|
|
|
|
|
import android.os.Parcel; |
|
|
|
import android.os.Parcelable; |
|
|
|
import android.util.AttributeSet; |
|
|
|
import android.util.Log; |
|
|
|
import android.view.View; |
|
|
|
|
|
|
|
public class DimBackgroundView extends View { |
|
|
@ -17,29 +22,105 @@ public class DimBackgroundView extends View { |
|
|
|
init(); |
|
|
|
} |
|
|
|
|
|
|
|
public DimBackgroundView(Context context, @Nullable AttributeSet attrs) { |
|
|
|
public DimBackgroundView(Context context, @Nullable AttributeSet attrs) { |
|
|
|
super(context, attrs); |
|
|
|
init(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public DimBackgroundView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { |
|
|
|
public DimBackgroundView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { |
|
|
|
super(context, attrs, defStyleAttr); |
|
|
|
init(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private void init() |
|
|
|
{ |
|
|
|
Drawable colorDrawable=new ColorDrawable(Color.BLACK); |
|
|
|
private void init() { |
|
|
|
setId(generateViewId()); |
|
|
|
setSaveEnabled(true); |
|
|
|
Drawable colorDrawable = new ColorDrawable(Color.BLACK); |
|
|
|
setBackground(colorDrawable); |
|
|
|
setAlpha(0f); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Override |
|
|
|
protected Parcelable onSaveInstanceState() { |
|
|
|
Log.d("GMEDimView","onSavedInstanceCalled"); |
|
|
|
Parcelable viewState = super.onSaveInstanceState(); |
|
|
|
SavedState myState = new SavedState(viewState); |
|
|
|
myState.alpha = getAlpha(); |
|
|
|
myState.bottom = getBottom(); |
|
|
|
myState.left = getLeft(); |
|
|
|
myState.right = getRight(); |
|
|
|
myState.top = getTop(); |
|
|
|
return myState; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void onRestoreInstanceState(Parcelable state) { |
|
|
|
Log.d("GMEDimView","onRestoreInstanceCalled"); |
|
|
|
SavedState savedState = (SavedState) state; |
|
|
|
super.onRestoreInstanceState(((SavedState) state).getSuperState()); |
|
|
|
setLeft(savedState.left); |
|
|
|
setTop(savedState.top); |
|
|
|
setRight(savedState.right); |
|
|
|
setBottom(savedState.bottom); |
|
|
|
setAlpha(savedState.alpha); |
|
|
|
|
|
|
|
invalidate(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void onDraw(Canvas canvas) { |
|
|
|
super.onDraw(canvas); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static class SavedState extends BaseSavedState { |
|
|
|
float alpha; |
|
|
|
int top, bottom, right, left; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public int describeContents() { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void writeToParcel(Parcel dest, int flags) { |
|
|
|
super.writeToParcel(dest, flags); |
|
|
|
dest.writeFloat(this.alpha); |
|
|
|
dest.writeInt(this.top); |
|
|
|
dest.writeInt(this.bottom); |
|
|
|
dest.writeInt(this.right); |
|
|
|
dest.writeInt(this.left); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected SavedState(Parcel in) { |
|
|
|
super(in); |
|
|
|
this.alpha = in.readFloat(); |
|
|
|
this.top = in.readInt(); |
|
|
|
this.bottom = in.readInt(); |
|
|
|
this.right = in.readInt(); |
|
|
|
this.left = in.readInt(); |
|
|
|
} |
|
|
|
|
|
|
|
SavedState(Parcelable superState) { |
|
|
|
super(superState); |
|
|
|
} |
|
|
|
|
|
|
|
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<SavedState>() { |
|
|
|
@Override |
|
|
|
public SavedState createFromParcel(Parcel source) { |
|
|
|
return new SavedState(source); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public SavedState[] newArray(int size) { |
|
|
|
return new SavedState[size]; |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|
} |