2011-07-21 166 views
1

在Android上,我試圖創建一個動態圖像查看器,用於翻轉圖像,並在每幅圖像的底部顯示一些關於圖像的信息,即1或2行文本最大值。我想給這個區域顯示文本一個獨特的背景顏色讓它站起來。一切工作正常,除了一件事情,當我爲TextView設置顏色讓「黑色」說我得到整個屏幕黑色覆蓋圖像圖像!而不僅僅是TextView區域。請我動態創建的一切銘記,因爲我下面做:覆蓋背景顏色的文字隱藏Android上的圖像?

imageFrame = new FrameLayout(this); 

Viewer = new ImageView(this); 

imageInfo = new TextView(this); 
imageInfo.setHeight(imageInfo.getLineHeight()); imageInfo.setGravity(Gravity.BOTTOM); 
imageInfo.setBackgroundColor(Color.CYAN); 
imageFrame.addView(Viewer); 
imageFrame.addView(imageInfo); 

任何幫助表示讚賞

回答

0

你可能要設置的高度和寬度,動態地爲好。我的猜測是textview的寬度和高度設置爲fill_parent。如果這不起作用,請嘗試以不同的順序將元素添加到imageFrame。

以下是您需要如何爲每個textview動態設置寬度。

TextView tv = (TextView) findViewById(R.id.yourtextviewname) 
ViewGroup.LayoutParams vg1 = (ViewGroup.LayoutParams) tv.getLayoutParams(); 
vg1.width = 100; 

tv.setLayoutParams(vg1); 

另請嘗試在您的框架佈局中製作線性佈局根元素。然後將textview和圖像視圖放在線性佈局中。

+0

謝謝您的回覆。我嘗試設置寬度和高度,但似乎我提供的值不被接受。我甚至試圖改變他們後,我的對象插入imageFrame沒有運氣。 反轉插入會將圖像放在文本的頂部,並將隱藏文字 –

+0

如何設置寬度?試試我上面添加到我的答案。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

謝謝,它通過使用LinearLayout在某種程度上起作用。但奇怪的是,如果我推入TextView對象,然後在LinearLayout中使用ImageView對象,它會在頂部顯示帶有文本的圖像。但是如果我反轉插入順序,我只能看到圖像和文本消失。你有什麼線索是由什麼造成的? 我能想到的唯一的事情是,當ImageView進入LinearLayout內部時,它將自身設置爲fill_parent,但在其他情況下,我將通過該LinearLayout來處理重新調整對象的大小以使其正確顯示。 –

0

如果你使用FrameLayout,你需要知道元素,放入什麼,堆疊,相互之間。如果您不想堆疊它們,您需要使用LinearLayout或RelativeLayout等。

+0

非常感謝你的提示 –