我希望有一些视图,如下图所示:
天知道我已经尝试了几种方法来实现它,但它们都没有真正起作用。
在最后一次尝试中,布局看起来应该是这样,但我发现填充成为视图的可点击部分的一部分,因此,“停止”按钮可以显示“开始”按钮,而这个按钮不会工作
此尝试的xml如下。
audio_player.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="@dimen/activity_horizontal_margin" >
<ImageView
android:id="@+id/pauseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="pauseAudio"
android:paddingRight="70dp"
android:src="@drawable/pause_selector"
android:text="PAUSE"
android:visibility="invisible" />
<ImageView
android:id="@+id/playButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="playSelection"
android:paddingRight="70dp"
android:src="@drawable/play_selector"
android:text="PLAY" />
<ImageView
android:id="@+id/moreVolumeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/stopButton"
android:layout_toRightOf="@+id/stopButton"
android:onClick="adjustVolume"
android:paddingLeft="15dp"
android:src="@drawable/volume_plus_selector"
android:text="+" />
<ImageView
android:id="@+id/lessVolumeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/playButton"
android:layout_toLeftOf="@+id/playButton"
android:onClick="adjustVolume"
android:paddingRight="15dp"
android:src="@drawable/volume_minus_selector"
android:text="-" />
<ImageView
android:id="@+id/stopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="stopAudio"
android:paddingLeft="70dp"
android:src="@drawable/stop_selector"
android:text="STOP" />
<SeekBar
android:id="@+id/seekBarPlayer"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_below="@id/stopButton"
android:layout_centerHorizontal="true"
android:paddingTop="5dp"
android:src="@drawable/process_bar" />
<TextView
android:id="@+id/audioTotalTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seekBarPlayer"
android:layout_toRightOf="@+id/seekBarPlayer"
android:paddingBottom="6dp"
android:paddingLeft="7dp"
android:text="@string/initial_time"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/audioRunningTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seekBarPlayer"
android:layout_toLeftOf="@+id/seekBarPlayer"
android:paddingBottom="6dp"
android:paddingRight="7dp"
android:text="@string/initial_time"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
我确信需要有一个更好的方法,我想把上层元素分组成一个RelativeLayout并应用它:android:layout_centerHorizontal =&#34; true&#34;但它不起作用。 :(
Heeeelp!
编辑:
那个布局在另一个布局中。我发布了它最有趣的部分:
<com.slidinglayer.SlidingLayer
xmlns:slidingLayer="http://schemas.android.com/apk/res/------------"
android:id="@+id/slidingLayer2"
android:layout_width="@dimen/layer_width"
android:layout_height="match_parent"
slidingLayer:closeOnTapEnabled="false"
slidingLayer:offsetWidth="@dimen/offset_width" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backround" >
<android.inputmethodservice.KeyboardView
android:id="@+id/keyboardview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="#00000000"
android:focusable="true"
android:focusableInTouchMode="true"
android:keyBackground="@drawable/keyboard_button_selector"
android:paddingBottom="@dimen/activity_horizontal_margin"
android:visibility="gone" />
<include
android:id="@+id/audio_player"
android:layout_width="match_parent"
android:layout_height="match_parent"
layout="@layout/audio_player" />
</RelativeLayout>
</com.slidinglayer.SlidingLayer>
答案 0 :(得分:1)
这就是我最终的目标:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:padding="@dimen/activity_horizontal_margin"
>
<LinearLayout
android:id="@+id/llUpperHalf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="horizontal"
android:gravity="center_vertical"
>
<ImageView
android:id="@+id/lessVolumeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="adjustVolume"
android:paddingRight="15dp"
android:src="@drawable/ic_launcher"
/>
<ImageView
android:id="@+id/playButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="playSelection"
android:src="@drawable/ic_launcher"
/>
<ImageView
android:id="@+id/pauseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="pauseAudio"
android:src="@drawable/ic_launcher"
android:visibility="gone"
/>
<ImageView
android:id="@+id/moreVolumeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="adjustVolume"
android:paddingLeft="15dp"
android:src="@drawable/ic_launcher"
/>
<ImageView
android:id="@+id/stopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="stopAudio"
android:src="@drawable/ic_launcher"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/llUpperHalf"
android:orientation="horizontal"
android:gravity="center_vertical"
>
<TextView
android:id="@+id/audioRunningTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seekBarPlayer"
android:layout_toLeftOf="@+id/seekBarPlayer"
android:gravity="center_vertical"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:text="00:00"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<SeekBar
android:id="@+id/seekBarPlayer"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_below="@id/stopButton"
android:paddingTop="5dp"
/>
<TextView
android:id="@+id/audioTotalTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingTop="8dp"
android:text="00:00"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout>
</RelativeLayout>
哪会产生以下结果(我没有你的资源。所以我用了我的东西):
请注意:
fill_parent
已弃用。请改用match_parent
。 android:text
属性答案 1 :(得分:0)
试试这个会起作用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="@dimen/activity_horizontal_margin" >
<LinearLayout
android:id="@+id/main_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right">
<ImageView
android:id="@+id/lessVolumeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="adjustVolume"
android:text="-" />
</LinearLayout>
<ImageView
android:id="@+id/pauseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="pauseAudio"
android:text="PAUSE"
android:visibility="invisible" />
<ImageView
android:id="@+id/playButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="playSelection"
android:text="PLAY" />
<ImageView
android:id="@+id/stopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="stopAudio"
android:text="STOP" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left">
<ImageView
android:id="@+id/moreVolumeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="adjustVolume"
android:paddingLeft="15dp"
android:text="+" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/main_ll"
android:orientation="horizontal" >
<TextView
android:id="@+id/audioTotalTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="6dp"
android:paddingLeft="7dp"
android:textAppearance="?android:attr/textAppearanceSmall" />
<SeekBar
android:id="@+id/seekBarPlayer"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:paddingTop="5dp" />
<TextView
android:id="@+id/audioRunningTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="6dp"
android:paddingRight="7dp"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</RelativeLayout>