protected void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){ applyStyle(context, attrs, defStyleAttr, defStyleRes); if(!isInEditMode()) mStyleId = ThemeManager.getStyleId(context, attrs, defStyleAttr, defStyleRes); }
public void applyStyle(int resId){ ViewUtil.applyStyle(this, resId); applyStyle(getContext(), null, 0, resId); }
public ImageView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs, 0, 0); }
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }
protected void applyStyle(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){ getRippleManager().onCreate(this, context, attrs, defStyleAttr, defStyleRes); }
@Override public int[] onCreateDrawableState(int extraSpace) { final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); int[] additionalStates = mChecked ? STATE_CHECKED : null; if (additionalStates != null) mergeDrawableStates(drawableState, additionalStates); return drawableState; } }
@Override public void onThemeChanged(ThemeManager.OnThemeChangedEvent event) { int style = ThemeManager.getInstance().getCurrentStyle(mStyleId); if(mCurrentStyle != style){ mCurrentStyle = style; applyStyle(mCurrentStyle); } }
@Override public void setBackgroundDrawable(Drawable drawable) { Drawable background = getBackground(); if(background instanceof RippleDrawable && !(drawable instanceof RippleDrawable)) ((RippleDrawable) background).setBackgroundDrawable(drawable); else super.setBackgroundDrawable(drawable); }
@Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if(mStyleId != 0) { ThemeManager.getInstance().registerOnThemeChangedListener(this); onThemeChanged(null); } }
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (mSoftBitmap == null || w != oldw || h != oldh) { initBitmap(); rect.set(0,0,getWidth(),getHeight()); } }
@Override protected void onDraw(Canvas canvas) { if (mSoftBitmap.get() == null || mSoftOutBitmap.get() == null) { initBitmap(); } mPaint.setAntiAlias(true); super.onDraw(mCanvas); mPaint.setColor(Color.BLACK); mSharpViewRenderProxy.mSharpDrawable.setBounds(0,0,getWidth(),getHeight()); mSharpViewRenderProxy.mSharpDrawable.setPaint(mPaint); mSharpViewRenderProxy.mSharpDrawable.setBgColor(Color.BLACK); mSharpViewRenderProxy.mSharpDrawable.draw(mOutCanvas); mPaint.setXfermode(mPorterDuffXfermode); mOutCanvas.drawBitmap(mSoftBitmap.get(), rect, rect, mPaint); mPaint.setXfermode(null); canvas.drawBitmap(mSoftOutBitmap.get(), rect, rect, mPaint); }
@Override public boolean onTouchEvent(@NonNull MotionEvent event) { boolean result = super.onTouchEvent(event); return getRippleManager().onTouchEvent(this, event) || result; }
public ImageView(Context context) { super(context); init(context, null, 0, 0); }
public ImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs, defStyleAttr, 0); }