2015-07-21 125 views
0

我正在處理我的應用程序中的XML佈局,並且我想要做的是使ImageView上有一段文字(我想要一個TextView在上面)。無論如何,少些話和更多的例子。我想是這樣的:Android XML佈局 - 帶有TextView的圖片

enter image description here

我想知道什麼是使(用不透明帶,最好用文字將伸展或因名稱的長度縮水的最好辦法儘管我認爲我可能會自己想出延伸)。

+1

你可以使用絕對佈局或框架佈局和位置和大小的一切都是父母。 –

回答

2

您可以創建一個ImageViewTextView作爲兩個孩子

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/myImageView" 
     android:layout_width="150dp" 
     android:layout_height="75dp" 
     android:src="@drawable/myImage" /> 

    <TextView 
     android:id="@+id/myTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/myImageView" 
     android:layout_alignParentLeft="true" 
     android:layout_alignRight="@+id/myImageView" 
     android:background="@drawable/myBackground" 
     android:gravity="center" /> 
</RelativeLayout> 
+0

謝謝你的回答:)我對這些'RalativeLayout'非常不滿。我的drawable中會有什麼?一條不透明的油漆條?也許有一種方法不使用drawable,而是自己在程序中繪製它?如果我需要動態尺寸的條紋 – Vendetta8247

+0

您也可以使用'@android:color /'或好的十六進制編碼的ARGB作爲背景。例如:'@android:color/red'或'#BBFFFFFF' – ChrisStillwell

1

建立在什麼克里斯·史迪威說RelativeLayout,alpha屬性設置爲小於1:

<RelativeLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" > 

<ImageView 
    android:id="@+id/myImageView" 
    android:layout_width="150dp" 
    android:layout_height="75dp" 
    android:src="@drawable/myImage" /> 

<TextView 
    android:id="@+id/myTextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/myImageView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignRight="@+id/myImageView" 
    android:background="@drawable/myBackground" 
    android:gravity="center" /> 
</RelativeLayout> 

然後在你的onCreate()

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.yourlayout); 
    ImageView imageView = (ImageView)findViewById(R.id.myImageView); 
    TextView textView = (TextView)findViewById(R.id.myTextView); 
    textView.setText("Your Text"); 
    textView.setAlpha(.6f); 
} 
+0

感謝您使用代碼所做的更改和補充。我已經提出了你的答案,但我會將ChrisStillwell的答案標記爲正確的,因爲他是第一個。儘管我仍然非常感謝你 – Vendetta8247