2012-02-22 6 views
0

Я пытаюсь создать учебное пособие в своем приложении для Android, и я хочу поместить некоторые шары над некоторыми элементами пользовательского интерфейса. Мой пользовательский интерфейс построен на LinearLayouts.Как накладывать изображение на элемент внутри LinearLayout

Как я могу поместить плавающее изображение по LinearLayout в определенную позицию (т. Е. Рядом с текстовым полем с id = "@ id/email").

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" > 

    <TextView android:id="@+id/email" 
     style="@style/LoginBarText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="3.0dp" 
     android:text="Email:" /> 
</LinearLayout> 

Я знаю, что только макет, который способен перекрывать элементы является RelativeLayout, но он не работает над элементами внутри других макетов.

Благодаря

+0

Измените свой LinearLayout на RelativeLayout, тогда он должен работать. – bhups

+0

Я не могу изменить его, потому что мне нужен атрибут веса, чтобы заполнить экран процентом. Вес не работает с RelativeLayouts – Matroska

ответ

3

вы можете создать RelativeLayout и включают в себя оригинал LinearLayout

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <include 
      layout="@layout/layout_original" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 
    <include 
      layout="@layout/layout_overlay" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 
</RelativeLayout> 

Или, если вам нужно просто добавить изображение рядом (не сверху) элемент, попробуйте следующее:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:orientation="horizontal"> 

    <ImageView android:id="@+id/image" 
    android:src="@drawable/imagename" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:visibility="invisible" /> 

    <TextView android:id="@+id/email" 
    style="@style/LoginBarText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="3.0dp" 
    android:text="Email:" /> 
</LinearLayout> 

Тогда при вызове активность

image = (ImageView) findViewById(R.id.image); 
image.setVisibility(View.VISIBLE); 
+0

Я хочу нарисовать изображение рядом с элементом внутри LinearLayout (который не состоит только из текстового). Я бы заменил LinearLayouts на RelativeLayouts, но, к сожалению, атрибут веса для назначения ширины в процентах не работает с Relative Layouts. – Matroska

+0

Нет, потому что изображение должно перекрывать другие элементы макета. Я также пытаюсь использовать эту технику, чтобы поместить вертикальную тень между макетами фрагментов, но тень должна перекрывать элементы с левой стороны. – Matroska

+0

«RelativeLayout» может содержать ваш «Linearlayout», и все свойства вашего «LinearLayout» останутся. Поэтому вам не нужно ничего перекодировать. Затем за пределами символов orignal 'LinearLayout', но внутри тегов RelativeLaout вы должны включать элементы оверлея и указывать позицию (' android: layout_toLeftOf = "@ + id/email" ') для каждого элемента наложения. – Woodsy

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