上篇已说明,布局为整体布局。
<?xml version="1.0" encoding="utf-8"?>
<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:background="@drawable/list_background"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/line_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:background="@drawable/back_image"
android:layout_weight="2"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="@string/btn_back_name"/>
<EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="@drawable/edit_background_style"
android:layout_weight="9"
android:maxLength="15"
android:maxLines="1"
android:autofillHints="11" />
</LinearLayout>
<ListView
android:id="@+id/music_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="12"/>
<LinearLayout
android:id="@+id/line2_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<ImageView
android:id="@+id/music_image"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/background_player1"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="5">
<com.example.myapplication.MyTextView
android:id="@+id/music_name"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="2"
android:fadingEdge="horizontal"
android:ellipsize="marquee"
android:singleLine="true"
android:focusable="false"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever"
android:textSize="25sp"
android:text="@string/music_name"/>
<TextView
android:id="@+id/music_player"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="@string/music_player_name"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
这里有一个值得注意:
<com.example.myapplication.MyTextView/>
因为要实现文字滚动的效果,所以得自己重写一下TextView类,具体方法之后再说了。
其他都是常规布局,当然了,记住在三大主体上的占比分配,设置得好就好看些。设置占比就可以实现占满整个屏幕,而且能够把底部和顶部体现出来。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/txt_music_name"
android:layout_width="match_parent"
android:layout_weight="4"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="@string/music_name"/>
<TextView
android:id="@+id/txt_music_player"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/music_player_name"/>
</LinearLayout>
这是给listview专门写的一个布局文件,就是listview每一行要显示的内容有哪些,需要怎样布局,在这里设置好之后,再通过适配器设置,就能够显示对应的信息了。(比如csdn的是一个标题,三张图片,标题在上,图片在下)。
<resources>
<string name="app_name">音乐</string>
<string name="btn_back_name">返回</string>
<string name="music_name">音乐名称</string>
<string name="music_player_name">歌手</string>
</resources>
既然有这个文件,那它肯定是有必要的,而且在这里设置之后,使用起来也挺方便(主要是有强迫症,不想看到那么多的警告,看到就想解决掉)。