• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 安卓學習筆記15:使用安卓應用程序資源

    標簽: 安卓應用開發

    零、學習目標

    1. 會在布局或程序里使用字符串資源
    2. 會在布局或程序里使用數組資源
    3. 會在布局或程序里使用顏色資源
    4. 會在布局或程序里使用圖片資源
    5. 會在程序里使用安卓應用音頻資源

    一、資源說明

    在這里插入圖片描述

    1、字符串資源

    • 在字符串資源文件strings.xml里,利用<string>元素來定義字符串資源

    2、數組資源

    • 在字符串資源文件strings.xml里,利用<array><integer-array><string-array>元素來定義數組資源

    3、顏色資源

    • 在顏色資源文件colors.xml里,利用<color>元素來定義顏色資源

    4、圖片資源

    • 圖標資源一般放在mipmap目錄
    • 圖像資源一般放在drawable目錄

    5、音頻資源

    • 應用內含音頻資源一般放在自建的raw目錄
    • 應用外置音頻資源一般存放在外置存儲卡上
    • 安卓應用可以訪問網絡上的音頻(通過URI

    二、案例演示 - 使用安卓應用程序資源

    • 任務:使用安卓應用程序資源,包括字符串、數組、顏色、圖片、音頻。

    • 關于樣式資源styles,有點網頁設計里CSS的味道,是一個界面美化師,當然也很有用,我們留待以后再講述。

    (一)運行效果

    在這里插入圖片描述

    • 單擊【播放音樂】按鈕,會聽到音樂響起,但是現在我們沒有去控制音樂的播放,比如暫停、停止之類的功能以后我們會學習如何實現。

    (二)涉及知識點

    1. 線性布局
    2. 按鈕
    3. 字符串資源
    4. 數組資源
    5. 顏色資源
    6. 音頻資源(播放)

    (三)實現步驟

    1、創建安卓應用【UseAppResources】

    在這里插入圖片描述
    在這里插入圖片描述

    2、將圖片素材拷貝到drawable目錄

    在這里插入圖片描述

    • 在布局資源文件里訪問圖片資源bg1.jpg:android:background="@drawable/bg1"
    • 在Java代碼里訪問圖片資源bg1.jpg:Drawable bg1 = getResources().getDrawable(R.drawable.bg1);

    3、將音頻資源拷貝到自建的raw目錄

    在這里插入圖片描述

    • 在Java代碼里訪問音頻文件:MediaPlayer mp = MediaPlayer.create(this, R.raw.alice);
    • 安卓應用程序可以訪問項目里的音頻,也可以訪問存儲卡上的音頻,甚至可以訪問網絡上的音頻資源,目前我們只講述第一種情況。

    4、主布局資源文件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>
    

    5、字符串資源文件strings.xml

    在這里插入圖片描述

    (1)字符串資源

    在這里插入圖片描述

    • 在布局資源文件里訪問college變量:android:text="@string/college"
    • 在Java源代碼里訪問college變量:String strCollege = getResources().getString(R.string.college);

    (2)數組資源

    在這里插入圖片描述

    • 在布局資源文件里訪問majors變量:android:entries="@array/majors"
    • 在Java代碼里訪問majors變量:String[] strMajors = getResources().getStringArray(R.array.majors);

    6、顏色資源文件colors.xml

    在這里插入圖片描述

    • 一個應用程序里會用到不少顏色,如果都是用“#XXXXXX”去設置顏色,就很不直觀,不便于程序里使用,為此我們應該在顏色資源文件里創建程序需要的各種顏色,可以達到顧名思義的目的。
      在這里插入圖片描述
      ● 在布局資源文件里訪問顏色變量:android:background="@color/red"
      ● 在Java代碼里訪問顏色變量:int color = getResources().getColor(R.color.red)

    7、主界面類MainActivity

    在這里插入圖片描述

    • 聲明變量
      在這里插入圖片描述
    • 通過資源標識符獲取控件實例
      在這里插入圖片描述
    • 訪問字符串資源按鈕單擊事件處理方法
      在這里插入圖片描述
    • 訪問字符串數組資源按鈕單擊事件處理方法
      在這里插入圖片描述
    • 改變背景色按鈕單擊事件處理方法
      在這里插入圖片描述
    • 改變背景圖片按鈕單擊事件處理方法
      在這里插入圖片描述
    • 播放音樂按鈕單擊事件處理方法
      在這里插入圖片描述

    8、啟動應用,查看效果

    在這里插入圖片描述

    9、優化代碼說明

    • 初始化顏色數組,不放在事件處理方法里,放在onCreate方法里
    • 初始化圖片數組,不放在事件處理方法里,放在onCreate方法里

    三、訪問安卓平臺資源

    • 安卓包含大量標準資源,比如圖片、樣式、主題和布局。
      在這里插入圖片描述
    • 要訪問這些資源,需要在資源引用前加上android包名,比如訪問res/drawale-mdpi/btn_check_off.png資源,在布局資源文件里利用android.R.drawable.btn_check_off即可訪問。
      在這里插入圖片描述

    四、課后作業

    任務:制作個人相冊

    • 做一個簡單的個人相冊,提供【上一張】與【下一張】按鈕來切換圖片,并配上優美的背景音樂。
    • 當切換到第一張圖片,如果再單擊【上一張】,那么切換到最后一張圖片;
    • 當切換到最后一張圖片,如果再單擊【下一張】,那么切換到第一張圖片。
    • 要求每張圖片下面有文字說明。
    版權聲明:本文為howard2005原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/howard2005/article/details/109153807

    智能推薦

    安卓應用簽名

    安卓應用release模式是需要簽名的,否則無法安裝,debug模式不需要的 簽名可以用keytool生成**文件,然后在build.gradle中指定即可。 一、生成**文件 keytool -genkey -alias noalias -keypass abcd1234 -keyalg RSA -keysize 2048 -validity 36500 -keystore C:\data\Ar...

    安卓應用-記賬小程序

    使用安卓的計算器+記事本做一個簡單的記賬小應用 先上圖 主界面 導出記錄 賬單記錄 1.先實現一個具有計算功能的小程序 1.2 創建Activity文件,綁定caculator.xml文件 布局文件中的數字、加減乘除按鈕,同時還需要使用findviewbyid函數綁定布局文件中的按鈕,這里展示部分代碼,其余類似。 計算函數 在進行加減乘除時的預處理,這里展示加操作,其他操作類似 等于操作 后退操作...

    安卓service筆記

    Android8.0 Service 今天照著書上和博客的教程去學習,結果發現各種報錯(如下圖)。就知道service在高版本Android中又有了新的規則,于是將今天的學習整理成筆記,方便日后復習。不過Android的每次更新,都一直在努力收緊應用權限。不過我覺得挺好的,開放的權限導致了很多安全問題和性能問題,權限上去了用戶體驗會好很多。 生命周期 從上圖可看到有兩種方法可以啟動Service,...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡