2013-12-13 2 views
0

Я создал аналоговые часы, и теперь хочу добавить текст внутри него. Это мой main.xml. Я могу добавить текст в текстовое представление, но появляется выше или ниже часов, а не внутри него. Есть ли способ добавить текст в часы? Я проверил класс AnalogClock на андроид, и я не вижу такой вариантAndroid Вставить текст внутри аналоговых часов

<TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/analog_label" 
     android:layout_gravity="center" 
     android:layout_marginTop="5dp" 
     android:textColor="@android:color/black" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
    <AnalogClock 
     android:id="@+id/analogClock" 
     android:text="@string/analog_label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" /> 

ответ

1

ответа Niko «s совершенно правильно, но в Если вы не хотите использовать FrameLayout, все, что вам нужно сделать, это с помощью android:layout_centerInParent="true", проверьте код ниже:

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

    <AnalogClock 
     android:id="@+id/analogClock" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:layout_gravity="center" 
     android:text="YouText" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@android:color/black" /> 

</RelativeLayout> 

И это результат:

enter image description here

+0

Спасибо, Уильям, Даже это позаботится о моей проблеме. Кстати, я задал еще один вопрос в вышеупомянутом комментарии. Вы можете проверить пожалуйста? – fzansari

1

Wrap как внутри FrameLayout или вы можете использовать RelativeLayout также:

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <AnalogClock 
     android:id="@+id/analogClock" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="@string/analog_label" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginTop="5dp" 
     android:text="@string/analog_label" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@android:color/black" /> 
</FrameLayout> 
+0

** + 1 для вас ** Там нет необходимости ставить 'андроида:. Text' для' AnalogClock', также вы должны поставить 'Xmlns: андроид = «http://schemas.android.com/apk/res/android» и 'xmlns: tools =" http://schemas.android.com/tools "' в 'FrameLayout' –

+0

Да, конечно, необходимо схемы, но это не сказано, что это корневой вид =) – Niko

+0

Ничего себе .. это было довольно легко. Спасибо Нико и Уильяму. У меня есть еще один вопрос, если вы, ребята, не возражаете. Я использую изображение для часового циферблата, так как я хочу собственное изображение для часов. Но теперь проблема заключается в наложении текста на изображение внутри циферблата. Как мне это сделать? Нужно ли сделать изображение прозрачным, чтобы увидеть текст внутри него? – fzansari

Смежные вопросы