您的位置:首页 > 移动开发 > Android开发

Android学习指南之二十三:Drawable及其相关类的使用

2012-08-20 22:20 519 查看
对于任何软件来说,美观的界面都是用户体验的重要组成部分,它能提高整个软件的品质,给用户一个好的印象。界面的美观一般离不开各种图形图像资源。本节就来讲一讲XML中可以用@drawable/icon引用到它。

那么如果图片资源不在项目中而是在SDCard中时如何使用呢,我们看一下下面的例子学习一下Drawable的使用,并且顺便学习一下Bitmap和BitmapFactory的使用。

1、创建项目Lesson23_Drawable,主Acitivity的名字是MainDrawable.java,拷贝a.jpg和b.jpg两个文件到sdcard中。

2、res\main.xml的内容如下:

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);   
      
            //定义按钮点击监听器   
            OnClickListener ocl = new OnClickListener() {   
      
                @Override  
                public void onClick(View v) {   
      
                    switch (v.getId()) {   
                    case R.id.Button01:   
                        //给ImageView设置图片,从存储卡中获取图片为Drawable,然后把Drawable设置为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方法,当然使用此方法需要有android.permission.SET_WALLPAPER权限   
                            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方法,作用是恢复默认壁纸,当然使用此方法需要有android.permission.SET_WALLPAPER权限   
                            clearWallpaper();   
                        } catch (IOException e) {   
                            e.printStackTrace();   
                        }   
                        break;   
                    }   
      
                }   
      
            };   
      
            //给按钮们绑定点击监听器   
            b1.setOnClickListener(ocl);   
            b2.setOnClickListener(ocl);   
            b3.setOnClickListener(ocl);   
            b4.setOnClickListener(ocl);   
            b5.setOnClickListener(ocl);   
        }   
      
    }
4、AndroidManifest.xml的内容如下(设置权限):

<?xml version="1.0" encoding="utf-8"?>  
    <MANIFEST android:versionname="1.0" android:versioncode="1" xmlns:android="http://schemas.android.com/apk/res/android" package="android.basic.lesson23">  
        <APPLICATION android:icon="@drawable/icon" android:label="@string/app_name">  
            <ACTIVITY android:name=".MainDrawable" android:label="@string/app_name">  
                <INTENT -filter>  
                    <ACTION android:name="android.intent.action.MAIN" />  
                    <CATEGORY android:name="android.intent.category.LAUNCHER" />  
                </INTENT>  
            </ACTIVITY>  
      
        </APPLICATION>  
        <USES android:minsdkversion="8" -sdk />  
      
    <USES android:name="android.permission.SET_WALLPAPER" -permission></USES>  
    </MANIFEST>
5、运行程序,查看结果。

点击“查看图片A”按钮,ImageView载入图片A并显示出来:

点击“设置图片B为壁纸”按钮,可以看到图片B已经成为桌面壁纸:

关于Drawable使用的内容就讲到这里了,大家可以自己多加练习,巩固一下这些知识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: