buat bayangan untuk bitmap dalam tampilan khusus

Saya memiliki tampilan khusus yang berisi beberapa bitmap dan saya ingin mengatur bayangan untuknya, untuk itu, saya menggunakan kode ini:

shadowPaints=new Paint(Paint.ANTI_ALIAS_FLAG);
shadowPaints.setShadowLayer(10.0f, 3.0f, 2.0f, Color.BLACK);
canvas.drawBitmap(bmp, matrix, shadowPaints);   
setLayerType(LAYER_TYPE_SOFTWARE, shadowPaints);

dan hasil saya adalah masukkan deskripsi gambar di sini seperti yang Anda lihat, bayangan saya sebenarnya adalah bitmap lain dengan posisi x dan y berbeda tetapi yang saya inginkan adalah bayangan saya menjadi bitmap warna solid.
adakah yang bisa membantu saya tentang ini?


person max    schedule 21.07.2016    source sumber
comment
Bisakah Anda memposting semua kode tampilan khusus Anda?   -  person Divers    schedule 21.07.2016
comment
terima kasih atas perhatiannya. kodenya terlalu besar tetapi jika Anda menunjukkan kepada saya cara yang berfungsi dalam tampilan khusus sederhana, saya yakin itu akan berfungsi pada tampilan khusus saya juga.   -  person max    schedule 21.07.2016


Jawaban (1)


setShadowLayer sebenarnya dimaksudkan untuk memberi bayangan pada teks.

Jika Anda sudah mengetahui bitmap yang ingin Anda gambar, Anda tinggal menambahkan bayangan di PhotoShop dan menggambar bitmap dan bayangannya sekaligus.

Jika tidak ingin melakukannya, Anda dapat membuat bayangan dengan membuat salinan gambar, menggunakan filter PorterDuff untuk membuat semuanya menjadi abu-abu, gunakan Renderscript untuk memburamkan gambar, dan menggambarnya di kanvas dengan offset x,y sebelum menggambar gambar sebenarnya di atasnya.

Secara pribadi, menurut saya PhotoShop jauh lebih mudah.

person kris larson    schedule 21.07.2016