2011-07-21 14 views
1

Androidの場合、画像を反転する動的画像ビューアを作成しようとしています。各画像の下部に、画像の情報を表示します。1行または2行のテキストが最大になります。私は、それを立ち上がらせるために、テキストを表示する領域にユニークな背景色を与えたいと思います。 1つのことを除いてすべてうまく動作します。私がTextViewのカラーを "Black"と言うように設定すると、画像全体を黒く塗りつぶしてしまいます。 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 tv = (TextView) findViewById(R.id.yourtextviewname) 
ViewGroup.LayoutParams vg1 = (ViewGroup.LayoutParams) tv.getLayoutParams(); 
vg1.width = 100; 

tv.setLayoutParams(vg1); 

また、フレームレイアウト内でルート要素を線形レイアウトにしてみてください。次に、テキストビューとイメージビューを線形レイアウトに配置します。

+0

ありがとうございます。私は幅と高さの両方を設定しようとしましたが、私が提供する値は受け入れられないようです。私は運がなくimageFrameの中に私のオブジェクトを挿入した後にそれらを変更しようとしました。 挿入を逆にするとテキストの上にイメージが置かれ、テキストは非表示になります –

+0

どのように幅を設定していますか?私の答えに上記で追加したものを試してみてください。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

ありがとう、それはLinearLayoutを使用することによってある程度まで機能します。しかし、奇妙なのは、TextViewオブジェクトを押し込んだ後、LinearLayout内のImageViewオブジェクトが続き、テキストが上にあるイメージが表示されるということです。しかし、挿入順を逆にすると、画像のみが表示され、テキストは消えます。あなたはこれを引き起こしている何か手掛かりがありますか? 私が考えることができるのは、ImageViewがLinearLayout内に入るときにfill_parentに設定されますが、それ以外の場合は、LinearLayoutを介して、オブジェクトがすべて正しく表示されるようにオブジェクトのサイズを変更します。 –

0

FrameLayoutを使用している場合は、配置されている要素が互いに積み重なっていることを知る必要があります。積み重ねたくない場合は、LinearLayoutやRelativeLayoutなどを使用する必要があります。

+0

ありがとう、非常に便利なヒント –

関連する問題