2014-12-03 66 views
1

我們的應用程序有幾種類型的小部件。他們都被畫在方形的畫布上。它們可以拖動和調整大小。一些小部件很薄或很短,當它們靠得很近時,透明部分會完全重疊另一個小部件的可見部分,使得它們難以選擇。Android:繪製拉伸/壓縮位圖/畫布

我需要刪除透明部分並將小部件繪製到正確大小的背景上,而不需要額外的部分。由於某種原因,這比我預期的要困難得多。

有問題的小部件示例。這是一個不同的小工具,但要說明它是如何在方形背景上。看看角落是如何很好的圓角?

Square Canvas for Widget

調整大小的位圖是矩形,使得角落伸展和字體壓扁/拉伸: Rect Canvas for Widget

你知道如何預防呢?

回答

1

Yayyyy !!我想到了!

在的onDraw(帆布油畫):

舊代碼:

canvas.scale((float) width, (float) height);  

新代碼:

// Scale square, so nothing gets stretched or squished 
canvas.scale((float) width, (float) width); 

// Crops the canvas 
canvas.clipRect(0f, 0f, 1f, .33f); 

然後,我只是確保我的所有rects只使用最高的1/3的畫布

enter image description here