欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Drawable及其相關(guān)類的使用

 更新時間:2016年08月10日 15:00:47   作者:bigmazhiyu  
本文主要講解Android Drawable,這里整理了Drawable 的文檔資料和實例代碼以及實現(xiàn)效果圖,有需要的小伙伴可以參考下

一個讓人賞心悅目的界面對軟件來說非常重要,因此圖形圖像資源也顯得非常重要。本講就要談一談Android中處理圖形圖像的最重要的一個類Drawable。Drawable就是一個可以畫的對象的抽象(有點別扭,你湊合看吧),下面是它的繼承關(guān)系,可以看到BitmapDrawable,AnimationDrawable等對象都是它的子類。

最簡單的使用Drawable資源的方法是,把圖片放入Android工程的res\drawable目錄下,編程環(huán)境會自動在R類里為此資源創(chuàng)建一個引用。你可以使用此引用訪問該資源對象。譬如對應(yīng)用程序的圖標(biāo),在Java代碼中可以用R.drawable.icon引用到它,在XML中可以用@drawable/icon引用到它。

那么如果圖片資源不在項目中而是在SDCard中時如何使用呢,我們看一下下面的例子學(xué)習(xí)一下Drawable的使用,并且順便學(xué)習(xí)一下Bitmap和BitmapFactory的使用。

1、創(chuàng)建項目 Lesson23_Drawable,主Acitivity的名字是 MainDrawable.java,拷貝a.jpg和b.jpg兩個文件到sdcard中

2、res\main.xml的內(nèi)容如下:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:textsize="20sp" android:text="Drawable的使用-設(shè)置壁紙">
<button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="20sp" android:text="查看圖片A" android:id="@+id/Button01">
</button>
<button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="20sp" android:text="查看圖片B" android:id="@+id/Button02">
</button>
<button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="20sp" android:text="設(shè)置圖片A為壁紙" android:id="@+id/Button03">
</button>
<button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="20sp" android:text="設(shè)置圖片B為壁紙" android:id="@+id/Button04">
</button>
<button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="20sp" android:text="恢復(fù)默認(rèn)壁紙" android:id="@+id/Button05">
</button>
<imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ImageView01">
</imageview>
</textview></linearlayout>

3、MainDrawable.java的內(nèi)容如下:

package android.basic.lesson23;

import java.io.IOException;

import android.app.Activity;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainDrawable extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //定義UI組件
        Button b1 = (Button) findViewById(R.id.Button01);
        Button b2 = (Button) findViewById(R.id.Button02);
        Button b3 = (Button) findViewById(R.id.Button03);
        Button b4 = (Button) findViewById(R.id.Button04);
        Button b5 = (Button) findViewById(R.id.Button05);
        final ImageView iv= (ImageView)findViewById(R.id.ImageView01);

        //定義按鈕點擊監(jiān)聽器
        OnClickListener ocl = new OnClickListener() {

            @Override
            public void onClick(View v) {

                switch (v.getId()) {
                case R.id.Button01:
                    //給ImageView設(shè)置圖片,從存儲卡中獲取圖片為Drawable,然后把Drawable設(shè)置為ImageView的背景
                    iv.setBackgroundDrawable(Drawable.createFromPath("/sdcard/a.jpg"));
                    break;
                case R.id.Button02:
                    iv.setBackgroundDrawable(Drawable.createFromPath("/sdcard/b.jpg"));
                    break;
                case R.id.Button03:
                    try {
                        //Activity的父類ContextWrapper有這個setWallpaper方法,當(dāng)然使用此方法需要有android.permission.SET_WALLPAPER權(quán)限
                        setWallpaper(BitmapFactory.decodeFile("/sdcard/a.jpg"));
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                    break;
                case R.id.Button04:
                    try {
                        setWallpaper(BitmapFactory.decodeFile("/sdcard/b.jpg"));
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                    break;
                case R.id.Button05:
                    try {
                        //Activity的父類ContextWrapper有這個clearWallpaper方法,作用是恢復(fù)默認(rèn)壁紙,當(dāng)然使用此方法需要有android.permission.SET_WALLPAPER權(quán)限
                        clearWallpaper();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    break;
                }

            }

        };

        //給按鈕們綁定點擊監(jiān)聽器
        b1.setOnClickListener(ocl);
        b2.setOnClickListener(ocl);
        b3.setOnClickListener(ocl);
        b4.setOnClickListener(ocl);
        b5.setOnClickListener(ocl);
    }

}

4、AndroidManifest.xml的內(nèi)容如下(設(shè)置權(quán)限)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android.basic.lesson23" android:versioncode="1" android:versionname="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:label="@string/app_name" android:name=".MainDrawable">
      <intent -filter="">
        <action android:name="android.intent.action.MAIN">
        <category android:name="android.intent.category.LAUNCHER">
      </category></action></intent>
    </activity>

  </application>
  <uses -sdk="" android:minsdkversion="8">

<uses -permission="" android:name="android.permission.SET_WALLPAPER"></uses>
</uses></manifest> 

5、運行程序,查看結(jié)果: 

點擊“查看圖片A”按鈕,ImageView載入圖片A并顯示出來 

點擊”設(shè)置圖片B為壁紙”按鈕,可以看到圖片B已經(jīng)成為桌面壁紙。 好了本講就到這里。

以上就是對Android Drawable 的資料整理,后續(xù)繼續(xù)補充,謝謝大家的支持!

相關(guān)文章

  • Android中點擊隱藏軟鍵盤最佳方法

    Android中點擊隱藏軟鍵盤最佳方法

    本文介紹了Android中點擊隱藏軟鍵盤最佳方法。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • android實現(xiàn)動態(tài)顯示隱藏進(jìn)度條

    android實現(xiàn)動態(tài)顯示隱藏進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了android實現(xiàn)動態(tài)顯示隱藏進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android端實現(xiàn)單點登錄的方法詳解

    Android端實現(xiàn)單點登錄的方法詳解

    所謂單點登錄就是指的同一個賬戶(id)不能在一個以上的設(shè)備上登錄對應(yīng)的用戶系統(tǒng)(排除web端和移動端可以同時登錄的情況),例如:用戶m在A設(shè)備登錄并保持登錄狀態(tài),然后又在B設(shè)備登錄,此時A應(yīng)該要強制下線,m無法在A設(shè)備上繼續(xù)執(zhí)行用戶相關(guān)的操作,下面來一起看看吧。
    2016-11-11
  • Android sd卡讀取數(shù)據(jù)庫實例代碼

    Android sd卡讀取數(shù)據(jù)庫實例代碼

    這篇文章主要介紹了Android sd卡讀取數(shù)據(jù)庫實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 利用Flutter制作一個會飛的菜單

    利用Flutter制作一個會飛的菜單

    flutter中自帶了drawer組件,可以實現(xiàn)通用的菜單功能,所以本文將嘗試一下通過自定義動畫來實現(xiàn)一個會飛的菜單,感興趣的可以了解一下
    2023-06-06
  • Android startActivityForResult的基本用法詳解

    Android startActivityForResult的基本用法詳解

    這篇文章主要介紹了Android startActivityForResult的基本用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Android編程獲取網(wǎng)絡(luò)連接方式及判斷手機卡所屬運營商的方法

    Android編程獲取網(wǎng)絡(luò)連接方式及判斷手機卡所屬運營商的方法

    這篇文章主要介紹了Android編程獲取網(wǎng)絡(luò)連接方式及判斷手機卡所屬運營商的方法,涉及Android針對網(wǎng)絡(luò)的判斷及本機信息的獲取技巧,需要的朋友可以參考下
    2016-01-01
  • Android獲取手機系統(tǒng)版本等信息的方法

    Android獲取手機系統(tǒng)版本等信息的方法

    這篇文章主要介紹了Android獲取手機系統(tǒng)版本等信息的方法,涉及Android獲取手機版本中各種常見信息的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 如何獲取Android設(shè)備掛載的所有存儲器

    如何獲取Android設(shè)備掛載的所有存儲器

    這篇文章主要為大家詳細(xì)介紹了如何獲取Android設(shè)備掛載的所有存儲器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Android Studio實現(xiàn)簡易計算器

    Android Studio實現(xiàn)簡易計算器

    這篇文章主要為大家詳細(xì)介紹了Android Studio實現(xiàn)簡易計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論