canvas.drawRoundRect в Drawable не работает должным образом

Вот мой код BackDeckView

      public class BackDeckView extends View
{
    /*Others Constructor includeed*/
    
    private void initView(Context context)
    {
        setBackground(new BaseDrawable(getResources().getDrawable(R.drawable.tarotback)));
    }

    //onDraw
}

А BaseDrawable - это

      public class BaseDrawable extends Drawable
{

    public Drawable icon;
    
    private Paint paint;

    public BaseDrawable(Drawable icon)
    {
        this.icon = icon;
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(android.R.color.holo_green_light);
    }
    
    @Override
    public void draw(Canvas canvas)
    {
        Rect bounds = getBounds();
        canvas.drawRoundRect(0,0,canvas.getWidth(),canvas.getHeight(),20f,20f,paint);
        icon.setBounds(bounds);
        icon.draw(canvas);
        invalidateSelf();
    }
    //setAlpha
    //setColorFilter

    @Override
    public int getOpacity()
    {
        return PixelFormat.TRANSLUCENT;
    }
    
}

результаты как на этой картинке

Я пытался переопределить холст из BackDeckView для округления, но он показывает только черную страницу, и я также потерял фоновое растровое изображение

0 ответов

Другие вопросы по тегам