2014-01-08 229 views
0

我想創建一個始終保持在屏幕上的圓形佈局。Android創建圓形佈局

爲此,我創建了一個系統覆蓋並添加了一個按鈕。

但是,現在我想讓它變圓。

要麼我可以使用4個不同的ImageView和和textView並將兩者都添加到FrameLayout。

我在某處讀到這樣簡單的事情可以通過XML。

我該怎麼做?

我要實現的是這樣的:

enter image description here

編輯

下你的指導,我能夠做到這一點後: enter image description here

但我沒有被滿足我用過的方式。 我所做的是創建2形(背景,forground),並將它們添加到圖層列表。

背景

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval" > 

<solid android:color="#50000000" /> 

</shape> 

FORGROUND

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval" > 

<solid android:color="#99009900" /> 

</shape> 

LIST

<?xml version="1.0" encoding="utf-8"?> 

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

<item android:drawable="@drawable/circleback"> 
</item> 
<item 
    android:bottom="5dp" 
    android:drawable="@drawable/circlefront" 
    android:left="5dp" 
    android:right="5dp" 
    android:top="5dp"> 
</item> 

</layer-list> 

然後,我使用的FrameLayout和加入2- TextView的。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" > 

<ImageView 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    android:background="@drawable/circle" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="33dp" 
    android:text="@string/data_left" 
    android:layout_marginTop="8dp" 
    android:textColor="#fff" 
    android:textSize="30sp" 
    android:typeface="sans" 
    android:textStyle="bold"/> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="25dp" 
    android:text="@string/band" 
    android:layout_marginTop="40dp" 
    android:textColor="#fff" 
    android:textSize="20sp"/> 
</FrameLayout> 

然後通過服務誇大他們。但是我對文本的位置以及我必須隨機點擊並試用以找到圈子中心的事實並不滿意。

我稍後會添加捏來縮放來查看,所以我真的很想找到一種文本將自己對齊到圓心的方式。

+1

郵編,不只是聲明/需求。你試過了什麼? – himanshurb

回答

0

你需要創建一個形狀繪製(在res/drawable文件夾中),如:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" 
    <solid android:color="#ff00ff00 /> 
</shape> 

見文檔:https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

+0

當您將Marcin建議的drawable設置爲TextView的drawable時(您只需要一個TextView而沒有別的東西),請確保您在** dp **中爲** layout_width **和**指定了相同的值layout_height **。 –