`

玩转Android---2D图形及动画---图片处理

 
阅读更多

在Android中很多地方都使用到图片,比如各种图标,图片按钮等。在Android中操作图片是通过使用Drawable类来完成的。Drawable类有很多个子类,如BitmapDrawable用来操作位图;ColorDrawable用来操作颜色;ShapeDrawable用来操作各种形状。

有三种凡事来实例化Drawable对象:一是用来保存在工程中的图片资源;而是在XML中定义Drawable属性;三是通过构造方法实例化,这种方法在实际开发中一般不会用到。

 

例子1:在代码中通过setImageResource()方法来设置

BitmapTest01.java

package org.test.bitmaptest01;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class BitmapTest01 extends Activity {
    //声明图片视图ImageView
	private ImageView myImageView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myImageView = (ImageView)findViewById(R.id.ImageView01);
        //为ImageView设置图片资源
        myImageView.setImageResource(R.drawable.beau);
    }
}

 main.xml

<?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:text="测试"
    />
    <ImageView
    	android:id="@+id/ImageView01"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    />
</LinearLayout>

 运行效果如下:


 

或者在XML中配置。

应用程序的图标子在AndroidManifest.xml中配置

<application android:icon="@drawable/icon" android:label="@string/app_name">

 图片资源可以在布局文件中的ImageView属性中设置:

<?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:text="测试"
    />
    <ImageView
    	android:id="@+id/ImageView01"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:src="@drawable/beau"
    />
</LinearLayout>

 
如果我们的图片文件保存在SDCard中又该怎么办呢?在这种情况下,我们可以使用Bitmap和BitmapFactory两个类来读取文件。下面是如何从SDCard中读取图片文件并将其设置为壁纸的例子。首先需要在SDCard中添加一个名为wallpaper.png的图片资源。

我们在onCreate()方法中通过BitmapFactory的decodeFile()方法传递文件路径,获取Bitmap对象,然后调用

setWallpaper就可以了

代码如下:

package com.loulijun.bitmapwallpaper;

import java.io.IOException;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String path = "/sdcard/wallpaper.png";
        //通过BitmapFactory获取Bitmap实例
        Bitmap bm = BitmapFactory.decodeFile(path);
        try
        {
        	//设置桌面
        	setWallpaper(bm);
        }catch(IOException e)
        {
        	e.printStackTrace();
        }
    }
}
 

效果不贴了,就是更换了桌面背景图片

 

  • 大小: 51.6 KB
分享到:
评论

相关推荐

    玩转Android---2D图形及动画---Frame动画

    这篇博文"玩转Android---2D图形及动画---Frame动画"显然会深入探讨如何在Android平台上创建和管理帧动画。帧动画是一种将一系列静态图像连续播放以产生动态效果的技术,常见于游戏和应用程序中的过渡效果。 首先,...

    cocos2d-x 仿马里奥小游戏

    1. **渲染引擎**:cocos2d-x使用OpenGL ES进行图形渲染,提供了丰富的2D图形绘制API,如精灵(Sprite)、纹理(Texture)、层(Layer)和场景(Scene),使得开发者能够轻松创建复杂的2D游戏画面。 2. **动画系统**...

    cocos2d(android,ios)

    2. 渲染与动画:cocos2d-x在Android上支持OpenGL ES进行图形渲染,可以创建复杂的2D动画效果,如精灵的移动、旋转等。 3. 资源管理:cocos2d-x提供了资源加载和缓存机制,方便管理和复用游戏资源,如图像、音频、...

    cocos2d-x中国象棋

    《cocos2d-x中国象棋》是一款基于Cocos2d-x游戏引擎开发的桌面棋类游戏,专注于呈现中国传统象棋的玩法。虽然它没有内置AI功能,但该项目的源代码提供了一个很好的学习平台,让开发者能够理解如何利用Cocos2d-x构建...

    口袋仙侠cocos2d-x游戏源码

    它的绘图系统基于OpenGL ES,能高效地绘制2D图形,包括精灵、纹理、位图字体等。此外,Cocos2d-x还提供了一套完整的动画系统,允许开发者创建复杂的序列动画。 在《口袋仙侠》中,源码的结构通常会分为多个模块,如...

    cocos2d-x游戏实例 瞄汪战争

    - **图形渲染**:cocos2d-x支持精灵(Sprite)、纹理(Texture)、批次渲染(Batch rendering)等技术,能够高效地绘制2D图形。 - **场景管理**:通过Scene、Layer、Node等类,cocos2d-x构建了层次化的场景结构,...

    cocos2d-x权威指南完整版

    - **需求分析**:明确游戏类型及核心玩法。 - **原型制作**:使用cocos2d-x快速搭建游戏框架。 - **功能实现**:逐步完善游戏逻辑及界面布局。 **5.2 性能测试与调优** - **压力测试**:模拟大量用户同时在线情况...

    Cocos2d-x 3.1.1 微信打飞机源码

    1. **渲染引擎**:Cocos2d-x提供了一个强大的渲染引擎,支持2D图形绘制,包括精灵(Sprite)、层(Layer)、场景(Scene)等基本元素。开发者可以利用这些元素构建游戏世界,通过组合和动画效果实现丰富的视觉表现。...

    cocos2d-x源码

    在cocos2d-x中,我们可以利用其提供的丰富的图形渲染、动画制作、物理模拟以及事件处理功能来实现这些游戏机制。 首先,让我们来看看 MonkeyJump 游戏的源码结构。通常,一个cocos2d-x项目会包含以下几个核心部分:...

    基于Cocos2D-X框架闯关游戏的设计.zip

    - **渲染引擎**:Cocos2D-X使用OpenGL ES进行图形渲染,支持硬件加速,提供高效的2D渲染能力。 - **事件处理**:Cocos2D-X提供了一套事件处理系统,包括触摸事件、键盘事件、物理碰撞事件等。 2. **游戏场景与...

    精通COCOS2D-X游戏开发 基础卷

    Cocos2d-x是一个开源的游戏开发框架,基于C++,同时支持Objective-C和Python等语言,广泛应用于移动平台,如iOS、Android以及Windows Phone等。这本书旨在帮助读者掌握Cocos2d-x的基础知识,为创建自己的游戏奠定...

    cocos2d-x flappebird(beta)

    1. **渲染系统**:基于OpenGL ES 2.0,提供了2D图形渲染能力,支持精灵(Sprite)、纹理(Texture)、图层(Layer)、场景(Scene)等游戏基本元素。 2. **动作与动画**:内置丰富的动作库,如旋转、缩放、移动等,...

    Cocos2d-x 3.x游戏开发之旅pdf下载

    精灵是可移动或交互的2D图形对象,而动作则控制精灵的行为,如移动、旋转、放大等。 本书会深入讲解Cocos2d-x 3.x的安装和配置过程,包括设置开发环境、集成开发工具的选择,以及如何创建第一个项目。此外,还会...

    打地鼠 WhackAMole 源代码 已在Eclipse上能运行 cocos2d-x.2.2.3

    总的来说,"打地鼠"游戏的源代码为我们提供了一个学习cocos2d-x游戏开发的实例,通过研究其中的资源管理、图形渲染、事件处理和游戏逻辑,我们可以更好地理解和运用cocos2d-x框架,提升自己的游戏开发能力。

    Cocos2d-x坦克大战.zip

    它的核心功能是提供2D游戏开发所需的图形渲染、物理引擎、动画系统、音频处理等功能。在本压缩包“Cocos2d-x坦克大战.zip”中,我们找到了一个适用于初学者的坦克大战源码,这将是一个很好的学习资源,帮助开发者...

    益智类游戏——《旋转积木》.rar android

    Cocos2d-x提供了丰富的图形绘制、动画制作、物理引擎、音频处理等功能,使得游戏开发者能够快速构建出复杂的游戏逻辑和精美的视觉效果。 游戏的"旋转积木"概念可能是指玩家需要通过旋转不同形状的积木块,使其填满...

    Android代码-CatchThePigeonAndroid.zip

    这样的游戏通常会运用到Android的图形渲染、触摸事件处理、游戏循环机制以及物理模拟等技术。 二、Android基础架构 在Android应用开发中,主要涉及以下几个关键组件: 1. **Activity**:作为用户界面的主要承载者...

Global site tag (gtag.js) - Google Analytics