`

Bitmap的简单应用

 
阅读更多
package com.example.b;

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class BitMapTest extends Activity {
	String[] images = null;
	AssetManager assets = null;
	int currentImg = 0;
	ImageView image = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		image = (ImageView) findViewById(R.id.image);
		try {
			assets = getAssets();
			images = assets.list("");
		} catch (Exception e) {
			e.printStackTrace();
		}

		Button next = (Button) findViewById(R.id.next);
		next.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				if (currentImg >= images.length) {
					currentImg = 0;
				}
				while (!images[currentImg].endsWith(".png") && !images[currentImg].endsWith(".jpg") && !images[currentImg].endsWith(".gif")) {
					currentImg++;
					if (currentImg >= images.length) {
						currentImg = 0;
					}
				}
				InputStream assetFile = null;
				try {
					assetFile = assets.open(images[currentImg++]);
					BitmapDrawable bitmapDrawable = (BitmapDrawable) image.getDrawable();
					if(bitmapDrawable!=null 
							&& !bitmapDrawable.getBitmap().isRecycled()){
						bitmapDrawable.getBitmap().recycle();
					}
					image.setImageBitmap(BitmapFactory.decodeStream(assetFile));
					
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
	}

}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="image" />

    <Button
        android:id="@+id/next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="next" />

</LinearLayout>
分享到:
评论

相关推荐

    bitmap 的简单使用

    在这个主题中,我们将深入理解Bitmap的简单使用,并探讨如何在VC++环境中进行实践。 首先,我们需要了解Bitmap的基本概念。Bitmap是一个二维像素数组,每个像素可以有不同颜色,这些颜色组合起来就构成了我们看到的...

    Android下利用Bitmap切割图片

    以下是一个简单的示例,展示如何从Bitmap中裁剪出指定大小和位置的子Bitmap: ```java // 原始Bitmap Bitmap originalBitmap = ...; // 裁剪的起始坐标(x, y) int left = 100; int top = 50; // 裁剪的宽度和...

    Bitmap 结构在高性能网络算法设计中的应用

    ### Bitmap 结构在高性能网络算法设计中的应用 在探讨Bitmap结构如何被应用于高性能网络算法设计之前,我们首先需要理解Bitmap(位图)的基本概念及其在数据处理中的优势。Bitmap是一种用于存储二进制数据的数据...

    完善的压缩bitmap测试工程

    1. ** BitmapFactory.Options**:在加载Bitmap时,可以通过设置inSampleSize参数来缩小图片的尺寸,实现简单的缩放压缩。例如,将inSampleSize设为2,图片的宽高都会被缩小到原来的二分之一。 2. **Bitmap....

    Bitmap图像转halcon图像

    以下是一个简单的代码示例: ```csharp using MVTec.HalconNet; public HObject BitmapToHobject(string bitmapFilePath) { // 创建Halcon图像对象 HImage image = new HImage(); // 从Bitmap文件读取图像 ...

    VC加载BitMap图像

    这种方法简单实用,广泛应用于各种Windows应用程序的GUI设计中。然而,更复杂的图形操作,例如缩放、旋转等,可能需要使用GDI+或其他图形库,如Direct2D或OpenGL。对于初学者来说,理解并熟练掌握基本的GDI操作是...

    bitmap数据结构复制

    这个过程可以采用简单的内存复制函数,如`memcpy()`,或者通过循环遍历每个像素并手动复制。 3. **内存对齐**:由于内存管理的限制,复制过程中可能需要考虑字节对齐问题,确保目标Bitmap的内存布局与源Bitmap保持...

    图形图像bitmap.rar

    本压缩包"图形图像bitmap.rar"可能包含了一个展示Bitmap在图像动画中的应用实例。 在Android中,Bitmap对象代表一个位图,也就是像素数据的集合。这些像素数据可以是本地资源、网络资源或者内存中的数据。Bitmap...

    bitmap

    在了解了这些文件的作用后,我们可以推测这是一个简单的VC++项目,旨在教育新手如何在对话框应用程序中处理Bitmap图像。通过这个项目,学习者可以学习到MFC框架的基本用法,对话框的设计,以及如何在C++中进行位图...

    将Bitmap转成byte[]小例子

    以下是一个简单的示例: ```java public static byte[] bitmapToByteArray(Bitmap bitmap) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap....

    Drawable Bitmap之间的转化

    相反地,从`Bitmap`转换到`Drawable`也很简单,可以直接使用`BitmapDrawable`类: ```java public static Drawable bitmapToDrawable(Context context, Bitmap bitmap) { return new BitmapDrawable(context....

    Bitmap Converter For Emwin

    在实际开发过程中,使用Bitmap Converter for Emwin可以极大地提升Emwin应用的视觉效果和用户体验。开发者可以根据需求调整图标大小、颜色和样式,创建个性化且适应目标平台的图标。同时,通过遵循提供的使用说明,...

    把bitmap处理成圆角

    这种方法相对简单,性能也较好。 具体步骤如下: 1. 创建一个自定义的ImageView,重写onDraw()方法。 2. 在onDraw()方法中,获取Canvas对象,创建Paint对象。 3. 设置Paint的抗锯齿属性(setAntiAlias(true)),以...

    Transparent Bitmap实现透明的位图(7KB)

    本文将围绕“Transparent Bitmap实现透明的位图”这一主题,详细介绍透明位图的概念、实现方式以及在不同编程环境中的应用。 首先,透明位图的核心是透明度通道(Alpha Channel)。在标准的RGB颜色模型中,每个像素...

    Bitmap_transform.rar_Bitmap Transform_bitmap

    这种方法效率较低,因为SetPixel是昂贵的操作,适合小规模或简单操作。 2. **Bitmap到数组**: 反过来,要将Bitmap转换回二维数组,可以使用`LockBits`和`Marshal.Copy`方法。LockBits允许你直接访问图像的内存缓冲...

    RotateFont_Bitmap字体90度旋转程序_

    在某些特定的应用场景,比如LCD(液晶显示器)显示或热敏打印机上,由于硬件限制或者设计需求,我们可能需要将Bitmap字体进行90度的旋转操作。"RotateFont_Bitmap字体90度旋转程序_"这个标题所指的就是一个专门处理...

    android 把一个view视图转换成bitmap 保存到本地

    在实际应用中,可能还需要考虑性能优化,例如在子线程中执行转换和保存操作,防止阻塞UI线程。此外,如果View包含滚动视图,如ScrollView或HorizontalScrollView,可能需要先滚动到指定位置再进行截图,以获取完整的...

    Android Drawable、Bitmap、byte、灰度 转换

    从应用的资源文件中直接加载`Bitmap`是常见的操作。这可以通过`BitmapFactory`的静态方法`decodeResource()`来完成: ```java Resources res = getResources(); Bitmap bmp = BitmapFactory.decodeResource(res, R....

    Bitmap类和PictureBox控件实现显示,保存

    在C#编程中,`Bitmap`类和`PictureBox`控件是Windows Forms应用程序中用于处理图像的核心组件。本文将深入探讨这两个元素的功能、用法以及如何利用它们来显示和保存图像。 1. `Bitmap`类 `Bitmap`是.NET Framework...

    Bitmap转jpeg源码 简化版

    以下是一个简单的Bitmap转JPEG的代码示例: ```java public static boolean bitmapToJpeg(Bitmap bitmap, File file, int quality) { FileOutputStream outStream = null; try { outStream = new ...

Global site tag (gtag.js) - Google Analytics