[英]Trying to do a spotlight effect in android canvas
我有一個畫布和一個用於背景圖像的簡單位圖,填充了整個屏幕。 我創建了一個塗成黑色的rect,並將其alpha設置為250,以便在背景圖像上產生“深色”效果。 我的目標是制作一個簡單的圓形對象,以顯示其上方懸停的位置。 我試圖以多種方式思考如何執行它,但失敗了。
我認為最好的方法是創建一個簡單的圓,以設法降低其懸停在上方的位置的暗度alpha,但我不知道該怎么做。
我的代碼的相關部分:
private ColorFilter filter = new LightingColorFilter(Color.BLACK, 1);
private Paint darkPaint = new Paint(Color.BLACK), paint = new Paint(), paint2 = new Paint();//The style of the text and dark.
public DarkRoomView(Context context) {
super(context);
myChild = this;
darkPaint.setColorFilter(filter);
darkPaint.setAlpha(250);
paint2.setAlpha(10);
paint.setAlpha(50);
}
private void loadGFX() {//Loads all of this view GFX file.
backgroundImage = BitmapFactory.decodeResource(getResources(), R.drawable.darkroomscreen);
lightImage = BitmapFactory.decodeResource(getResources(), R.drawable.light);
}
private void drawGFX(Canvas canvas) {
canvas.drawBitmap(backgroundImage, 0, 0, paint2);//The backgeound image.
canvas.drawRect(0, 0, WIDTH, HEIGHT, darkPaint);//The darkness.
canvas.drawBitmap(lightImage, 50, 50, paint);//A spotlight.
}
有什么想法我應該完成嗎? 謝謝!
對於聚光燈下,你可以畫在黑暗中的原始圖像的圓。 您只需要找到原始圖像的正確矩形(基於手指的位置),然后在黑暗中繪制該特定矩形的圓即可。 試圖“穿越”黑暗不會真正帶你到任何地方。 您需要在上面放置一些東西。
到繪制“聚光燈”時,您已經用矩形使圖像變暗了。 恢復在抽簽過程中丟失的信息將很困難。
一種更靈活的方法是在單獨的圖像中繪制一個帶有聚光燈的暗矩形(即,首先合成“暗度”,然后聚光alpha和顏色蒙版圖像),然后將該蒙版圖像作為背景繪制在背景頂部單獨的步驟。 這也可以讓您輕松地執行諸如給聚光燈模糊邊界的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.