2012-04-24 60 views
0

所以我想將我的佈局邊框改成漫畫/漫畫中的某種泡泡。我知道我可以像這樣改變我的邊框:如何將邊框更改爲泡泡卡通

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape  android:shape="rectangle" > 
      <corners android:radius="5dip" /> 
      <stroke android:width="2dip" android:color="@color/white"/> 
     </shape> 
    </item> 
</layer-list> 

但我怎麼能做尖尖的部分(看起來像一個三角形)。我需要用它來指出我點擊的內容。 我知道這聽起來奇怪或有趣,但我需要嘗試。

回答

2

不,你不能這樣做。您可以提供行程角但沒有複雜的曲線(三角形),對於自定義形狀,您可以使用視圖和的onDraw()

Path path = new Path(); 
path.moveTo(160.0f, 240.0f); 
path.lineTo(140.0f, 200.0f); 
path.addArc(new RectF(140, 180, 180, 220), -180, 180); 
path.lineTo(160.0f, 240.0f); 
path.close(); 

這條道路將在畫布上繪製使用,

canvas.drawPath (路徑,油漆);

enter image description here

最好創建圖像與9Patch概念。 enter image description here

該工具將幫助建立9Patch圖像容易http://android.elex.pe.kr/a-better-9-patch-tool

+0

那麼這意味着頂部和左邊的一個總是可拉伸的,而底部和右邊的一個總是用於填充? – Tsunaze 2012-04-29 22:20:00

+0

@Tsunaze是的,絕對。 – 2012-04-30 03:58:01

1

最簡單的選擇可能是製作看起來像講話泡泡的9貼片圖像。這可以讓泡沫擴大到文本的大小,而不會伸展或看起來很滑稽。

否則,直接繪製它可能有點複雜 - 您需要在矩形底部繪製一個類似三角形的對象,可以使用XML或創建自定義組件並覆蓋繪畫方法 - 更多複雜。

9貼片圖像用於許多Android GUI組件,如按鈕和TeXtFields - 基本上,您只需創建9貼片圖像,然後將其設置爲組件的背景。這可以在XML中完成。

有很多用於創建9貼片圖像的示例,android SDK附帶9貼片工具,可爲您提供的任何圖像創建9貼片。看到這個鏈接的9補丁工具... http://developer.android.com/guide/developing/tools/draw9patch.html

0

我做了一個sample project它顯示了所有項目都顯示在談話氣球一個ListView。隨意下載並使用它。順便說一句,那灰泥不是偶然的;它是原始OmniGraffle源藝術的投影。正如其他作家所建議的那樣,它使用了9個補丁的drawable。 Screen shot

+0

它看起來不錯,但沒有下載鏈接,所以我可以測試它。 – Tsunaze 2012-04-29 19:48:33

+0

您可以在此處同步整個源代碼樹:http://code.google.com/p/speechballoonsample/source/checkout,或者您可以從以下位置保存單個文件:http://code.google.com/p/speechballoonsample/源/瀏覽/ – Sparky 2012-04-30 08:37:46