imageView の上に Buttonを重ねて表示するには?

2,939 views
Skip to first unread message

tashika

unread,
Feb 8, 2011, 10:36:46 PM2/8/11
to 日本Androidの会
メインファイル側


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView imageView = new ImageView(this);
imageView.setBackgroundResource(R.drawable.sample);
setContentView(imageView);

}
}

そして、新しくファイルを作り、


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView imageView = new ImageView(this);
imageView.setBackgroundResource(R.drawable.sample);
setContentView(imageView);

}
}

としています。

実行結果は、単純にsampleイメージが描画されるのみです。

これにXMLでButtonを生成し、sampleイメージ上に重ねる形でButtonを表示したいのですが、

Buttonがsampleイメージに隠れてしまい、見えません。

LinearLayoutを使用しています。


どのようにしたら、イメージの上にButtonを描画できるのでしょうか?

sys1yagi

unread,
Feb 8, 2011, 10:48:38 PM2/8/11
to android-g...@googlegroups.com

こんにちは。八木です。

FrameLayoutなら簡単にできますよ。

nonstop820

unread,
Feb 8, 2011, 10:48:42 PM2/8/11
to 日本Androidの会
FrameLayout のbackgroundにsampleイメージを指定して、
ボタンをFrameLayoutにネストすればできるかと思います。
LinearLayoutを使用したいのであれば、
上記のFrameLayoutをLinearLayoutにネストすれば、
デザインは変わらないかと。
試してませんが、似たようなことをやっているので、
たぶんできると思います。

tashika

unread,
Feb 9, 2011, 2:05:28 AM2/9/11
to 日本Androidの会
2 sys1yagi さん, nonstop820 さん

Framelayoutでうまく行きました。

しかし、Framelayoutですと、ButtonやTextView等の配置操作ができないのですが。。。

Linearlayoutなら、Layout margin top などで操作できたんですけどね。

飯塚康至

unread,
Feb 9, 2011, 2:48:59 AM2/9/11
to android-g...@googlegroups.com
こんにちは、飯塚です。
RelativeLayoutでうまくいきませんでしょうか。

2011年2月9日16:05 tashika <teik...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
以上、宜しくお願いします。

飯塚 康至

Stone

unread,
Feb 9, 2011, 3:20:32 AM2/9/11
to 日本Androidの会
Stone@調布、東京です


もしかしてLinearLayoutのLayoutParams使ってませんでしょうか?
FrameLayoutの場合FrameLayout.LayoutParamsを使いますよ。
こんな感じ

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(WC,
WC);//WC:トイレではない、wrapcontent
params.gravity = Gravity.LEFT;
params.setMargins(x0,y0,x1,y1);
mybutton.setLayoutParams(params);
mainview.addView(mybutton);

tashika

unread,
Feb 9, 2011, 11:00:09 PM2/9/11
to 日本Androidの会
皆様、ありがとうございました。順番に検証してみます。

Reply all
Reply to author
Forward
0 new messages