2021@SDUSC
音乐播放器项目总结
音乐播放器项目一共三个界面,包括主页面、音乐列表、音乐播放界面。主页面有一个图像按钮,可以跳转到音乐列表。音乐列表界面会显示安装设备本地音乐列表,包括音乐的名称、歌手、格式等信息,它们是按照地址取出的。点击音乐的条目会跳转到音乐播放界面,音乐播放界面(如上图)会显示音乐名称、歌手、总时长和播放进度,拖拉进度条会改变音乐播放进度。一个控制音乐播放、暂停按钮,右上角可以返回音乐列表界面。
缺点:功能设计较为简单,应用逻辑设计不太完善。音乐播放界面可以添加切换上一首或者下一首歌曲按钮,这样不需要频繁返回到音乐列表界面。便捷操作向右滑动直接返回到主界面或者上一首播放的音乐界面,常规认为会返回到音乐列表,不需要点击右上角的按钮。点击返回音乐列表按钮后,当前播放音乐会暂停,也不符合用户需求。一般是用户可以在查看音乐列表的同时,可以播放当前音乐,而不是退出音乐播放界面,音乐播放服务资源就释放。而且程序只能播放本地音乐。总而言之,应用设计总体不太符合用户需求。
校园地图项目
项目结构
activity_description.xml
:是标志性建筑介绍界面
activity_mian.xml:显示地图、学校标志性建筑名称和当前位置界面
mipmap
:该文件夹中放置界面中的各种图片资源。例如backward_arrowsmall中存放的是返回按钮图片。
Android页面布局
TextView
android:id="@+id/place_name"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:layout_marginStart="50dp"
android:layout_marginLeft="50dp"
android:layout_marginTop="90dp"
android:text="图书馆"
android:textColor="@color/blue"
android:textSize="36sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
id
:为TextView设置一个组件id,根据id,前端代码中通过findViewById()
的方法获取到该对象,然后进行相关属性的设置。这其中有两种声明方式,一是id="@+id/place_name"
,@+id
就是在R.java文件里新增一个id名称,如果之前已经存在相同的id
名称,那么会覆盖之前的名称。还有一种是用@id
,而@id
则是直接引用R.java文件的存在的id资源,如果不存在,会编译报错。
layout_width
:组件的宽度。layout_height
:组件的高度。
text
:设置显示的文本内容,如果字符串较长的话,可以写到string.xml文件中,然后通过@String/xxx
取得对应的字符串内容。
textColor
:设置字体颜色,同上,通过"@color/blue" colors.xml
资源来引用。
textSize
:字体大小,sp为单位。
layout_constraintTop_toTopOf
:组件顶部对齐被声明组件的顶部。 ConstraintLayout
是一个Support库,它支持向前兼容,是对RelativeLayout
的升级,效率更高且更实用。该代码使用是对组件的约束,和"parent"
左右对齐,layout_marginTop="90dp"
距离parent
的top为90dp。如果设置了某个方向的margin
值,那么只有设置相对应方向的约束条件,这个方向的margin
值才生效。比如设置了android:layout_marginStart="50dp"
,那么当且仅当设置了start
的约束条件app:layout_constraintStart_toStartOf
或者app:layout_constraintStart_toEndOf
这个margin
值才生效。
layout_constraintHorizontal_bias
:基准线约束,必须在同时设置了start
和end
两个方向的约束才起作用,取值范围是0-1,默认值是0.5。layout_constraintVertical_bias
是针对top
和bottom
。
gravity
:设置控件中内容的对齐方向。
<ImageButton
android:id="@+id/btn_place_return"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="13dp"
android:layout_marginLeft="13dp"
android:layout_marginTop="10dp"
android:background="#00FFFFFF"
android:onClick="back_onclick"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/backward_arrowsmall" />
background
:设置组件的背景颜色,可以直接设置为颜色值,也可以是图片。
onClick="back_onclick"
:在布局文件需要为按钮绑定一个点击方法。
//绑定返回按钮的点击事件
public void back_onclick(View v){
Intent mIntent2 = new Intent();
mIntent2.setClass(DescriptionActivity.this, MainActivity.class);
startActivity(mIntent2);
}
srcCompat
:是集成 vector drawables
。矢量可绘制对象可用XML中定义的单个矢量图形替换多个png。
src
:设置一个可绘制对象作为此ImageView
的内容,它将显示图片的原始大小,不可以自动缩放。
百度地图 API Key
基于位置的服务简称LBS,主要的工作原理是利用无线电通讯网络或 GPS 等定位方式来确定出移动设备所在的位置。
需要使用者自行下载BaiduLBS_AndroidSDK_Lib.aar文件,拷贝到MyMap - app - libs 目录下,然后打开Gradle Scriptus - build.gradle进行文件配置。配置完成后,需要Build重新将项目编译。
<com.baidu.mapapi.map.MapView
android:id="@+id/themapView"
android:layout_width="0dp"`在这里插入代码片`
android:layout_height="0dp"
android:clickable="true"
android:focusable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
添加百度地图容器,设置id为themapView,按照默认的设置占满屏幕。clickable
设置是否可点击。focusable
设置是否可取得焦点。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 -->
上附代码为获取定位权限声明配置。
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" />
上附代码为在在Application标签中声明定位的service组件。