第四次学习总结--安卓应用程序资源和常用控件

一、前言

本周学习了安卓的应用程序资源和常用控件。第一个案例包括字符串、数组、颜色、图片、音频,而常用控件演示了标签和编辑框的案例。

二、安卓应用程序资源

1、将图片和音乐分别拷贝到drawable和raw(自己创建中。
2、布局activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/black"
    android:gravity="center"
    android:orientation="vertical">

    <Button
        android:id="@+id/btnAccessString"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doAccessString"
        android:text="@string/access_string"
        android:textColor="#0000ff"
        android:textSize="20sp"/>

    <Button
        android:id="@+id/btnAccessStringArray"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doAccessStringArray"
        android:text="@string/access_string_array"
        android:textColor="#0000ff"
        android:textSize="20sp"/>

    <Button
        android:id="@+id/btnChangeBackColor"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doChangeBackColor"
        android:text="@string/change_backcolor"
        android:textColor="#0000ff"
        android:textSize="20sp"/>

    <Button
        android:id="@+id/btnChangeBackground"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doChangeBackground"
        android:text="@string/change_background"
        android:textColor="#0000ff"
        android:textSize="20sp"/>

    <Button
        android:id="@+id/btnPlayMusic"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doPlayMusic"
        android:text="@string/play_music"
        android:textColor="#0000ff"
        android:textSize="20sp"/>

</LinearLayout>

3、字符串文件资源strings.xml包括字符串资源和数组资源
4、在颜色资源文件colors.xml中自定义颜色
5、主页面类MainActivity

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private LinearLayout root;//线性根布局
    private MediaPlayer mp;//媒体播放器
    private int colorClickCount;//【改变背景色】按钮单击次数
    private int pictureClickCount;//【改变背景图片】按钮单击次数

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //利用布局资源文件设置用户界面
        setContentView(R.layout.activity_main);

        //通过资源标识符获取控件实例
        root = findViewById(R.id.root);
    }

    /**
     * 访问字符串资源按钮单击事件处理方法
     *
     * @param view
     */
    public void doAccessString(View view) {
        //访问字符串资源
        String strCollege = getResources().getString(R.string.college);
        //通过吐司来显示字符串数量
        Toast.makeText(this, "你的学校:" + strCollege,
                Toast.LENGTH_LONG).show();
    }

    /**
     * 访问字符串数组资源按钮单击事件处理方法
     *
     * @param view
     */
    public void doAccessStringArray(View view) {
        //获得字符串数组资源,保存在字符串数组变量里
        String[] strMajors = getResources().getStringArray(R.array.majors);
        StringBuffer buffer = new StringBuffer();
        //遍历字符串数组,将每个元素拼接起来
        buffer.append("信工院专业\n\n");
        //传统for循环
        for (int i = 0; i < strMajors.length; i++){
            buffer.append(strMajors[i] + "\n");
        }
        //通过吐司来显示字符串数组
        Toast.makeText(MainActivity.this, buffer.toString(), Toast.LENGTH_LONG).show();
    }

    /**
     * 改变背景色按钮单击事件处理方法
     * @param view
     */
    public void doChangeBackColor(View view) {
        //获得颜色数组
        int[] colors = new int[7];
        colors[0] = getResources().getColor(R.color.black);
        colors[1] = getResources().getColor(R.color.green);
        colors[2] = getResources().getColor(R.color.blue);
        colors[3] = getResources().getColor(R.color.red);
        colors[4] = getResources().getColor(R.color.white);
        colors[5] = getResources().getColor(R.color.yellow);
        colors[6] = getResources().getColor(R.color.purple);
        //获取颜色索引
        int index = ++colorClickCount % colors.length;
        //设置屏幕背景色
        root.setBackgroundColor(colors[index]);
    }

    /**
     * 改变背景图片按钮单击事件处理方法
     * @param view
     */
    public void doChangeBackground(View view) {
        //初始化背景图片标识符数组
        int[] imgPics = new int[7];
        for(int i = 0; i < imgPics.length; i++){
            imgPics[i] = getResources().getIdentifier("img" + (i + 1),
                    "drawable", "net.lbj.use_app_resources");
        }
        //获取图片索引
        int index = ++pictureClickCount % imgPics.length;
        //设置屏幕背景图片
        root.setBackgroundResource(imgPics[index]);
    }

    /**
     * 播放音乐按钮单击事件处理方法
     * @param view
     */
    public void doPlayMusic(View view){
        if(mp == null){
            //创建媒体播放器,指定播放源
            mp = MediaPlayer.create(MainActivity.this, R.raw.alice);
            //设置循环播放方式
            mp.setLooping(true);
            //播放指定音频文件
            mp.start();
            //设置完成监听器
            mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    Toast.makeText(MainActivity.this, "音乐播放完毕!",
                            Toast.LENGTH_LONG).show();
                }
            });
        }
    }
}

6、运行结果

三、常用控件

1、标签常用属性

  • text:标签文本内容
  • textColor:标签文本颜色
  • textSize:标签文本字号(单位用sp)
  • textStyle:标签文本样式(normal | bold | italic)
  • autoLink:自动链接(none、web、email、 phone、map)
  • background:背景(背景色、背景图片、背景图形)
  • textAllCaps:字母全大写
  • drawableTop:图片在上
  • drawableBottom:图片在下
  • drawableLeft:图片在左
  • drawableRight:图片在右
    2、编辑框常用属性
  • maxLines:最大行数
  • lines:行数
  • inputType:输入数据类型
  • hint:提示
  • textColor:文本颜色
  • textSize:文本字号
  • textColorHint:提示文本颜色
  • singleLine:文本是否单行(true, false)

四、遇到的问题

1、安卓应用程序资源案例中背景图片和音乐无法正常运行
解决方法:原因是在MainActivity中写背景图片处理方法时图片名称写错了,所以改名称。音乐无法播放是忘记开声音。
2、常用控件的两个案例运行不出来或者内容对不齐
解决方法:检查完善activity_main.xml和activity_registration.xml中的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值