Нижняя тень просмотра изображений Android

Как я могу сделать такой элемент просмотра (тень) в android?

https://dribbble.com/shots/4020189-Scroll-and-sidebar-interaction

Возможный дубликат stackoverflow.com/q/8353149/7319704

Abhinav Gupta 25.10.2018 22:08

Используйте CardView.

Pritish 26.10.2018 12:07
0
2
266
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для добавления тени вы можете использовать такой код:

Paint forShadow = new Paint(); 

// radius=10, y-offset=2, color=black 

forShadow.setShadowLayer(10.0f, 0.0f, 2.0f, 0xFF000000); 

// in onDraw(Canvas) method 

canvas.drawBitmap(bitmap, 0.0f, 0.0f, forShadow);

Также для Honeycomb и выше вам необходимо вызвать setLayerType(LAYER_TYPE_SOFTWARE, forShadow), иначе вы не увидите свою тень!

SetShadowLayer, к сожалению, не работает с аппаратным ускорением, поэтому сильно снижает производительность.

Полный код вкратце может выглядеть примерно так:

public class ShadowImage extends Drawable {

Bitmap bm;

@Override
public void draw(Canvas canvas) {

    Paint forShadow = new Paint();
    //trying for rectangle
    Rect rect = new Rect(0,0,bm.getWidth(), bm.getHeight());

    forShadow.setAntiAlias(true);
    forShadow.setShadowLayer(5.5f, 4.0f, 4.0f, Color.BLACK);

    canvas.drawRect(rect, forShadow);
    canvas.drawBitmap(bm, 0.0f, 0.0f, null);

}

public ShadowImage(Bitmap bitmap) {
    super();
    this.bm = bitmap;
} ... }

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