我的xml布局中的My Table行如下所示:
<TableRow
android:layout_marginTop="10dp"
>
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="256dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/titlename"
android:layout_="@+id/playbtn"
android:layout_marginTop="4dp"
/>
<Button
android:id="@+id/playbtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:background="@drawable/play"
android:layout_marginBottom="3dp"/>
<Button
android:id="@+id/pausebtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_toTopOf="@+id/playbtn"
android:layout_alignParentBottom="true"
android:background="@drawable/pause"
android:layout_marginBottom="3dp"/>
</TableRow>
我的输出如下,
我的要求是在布局中的同一位置显示播放暂停按钮?
有人可以帮忙吗?
答案 0 :(得分:8)
使用FrameLayout
并将一个按钮放在另一个
喜欢这个
<FrameLayout ... >
<Button
android:id="@+id/playbtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/play"/>
<Button
android:id="@+id/pausebtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/pause"/>
</FrameLayout>
这会将暂停按钮置于播放按钮上。根据需要制作必要的按钮visible
和invisible
答案 1 :(得分:1)
尝试使用此布局。使用LinearLayout和FrameLayout的组合来获得所需的结果。
<TableRow
android:layout_marginTop="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weight="1"
android:layout_alignLeft="@+id/titlename"
android:layout_="@+id/playbtn"
android:layout_marginTop="4dp"
/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/playbtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/play"/>
<Button
android:id="@+id/pausebtn"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/pause"/>
</FrameLayout>
</LinearLayout>
</TableRow>
答案 2 :(得分:1)
一旦试试这个:
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".8" />
<Button
android:id="@+id/play"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".2"
/>
</TableRow>
主要活动
private boolean playing = false;
Button play;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play=(Button) findViewById(R.id.play);
play.setBackgroundResource(R.drawable.pause);
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(playing){
playing = false;
play.setBackgroundResource(R.drawable.pause);
}
else {
playing = true;
play.setBackgroundResource(R.drawable.play);
}
}
});
}
答案 3 :(得分:0)
为什么不能尝试合并?
瞥一眼。
http://android-developers.blogspot.in/2009/03/android-layout-tricks-3-optimize-by.html
答案 4 :(得分:0)
您无需为其创建两个按钮。你可以单身做。我创建了一个示例程序。我发现这是一种更清洁的方法。
MainActivity的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:id="@+id/buttonPlayPause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
这是MainActivity
package in.live.homam.imagebuttonexample;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private Button buttonPlayPause;
private static final int resourceIdPlay = R.drawable.play;
private static final int resourceIdPause = R.drawable.pause;
private int resourceIdButton = resourceIdPlay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonPlayPause = (Button) findViewById(R.id.buttonPlayPause);
buttonPlayPause.setBackgroundResource(resourceIdButton);
buttonPlayPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(resourceIdButton == resourceIdPlay) {
resourceIdButton = resourceIdPause;
Log.d("Tag", "Playing");
}
else {
resourceIdButton = resourceIdPlay;
Log.d("Tag", "Paused");
}
buttonPlayPause.setBackgroundResource(resourceIdButton);
}
});
}
}