`
whao189
  • 浏览: 124642 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

图片缩放

 
阅读更多
话不多说,直接看代码!
代码就一个文件!
package com.bitmap;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends Activity {
    protected static final String TAG = "MainActivity";
	/** Called when the activity is first created. */
	private Bitmap bitMap;
	private ImageView imageView01;
	private View view;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        //根据 drawable 中的资源 创建 一个bitmap
        bitMap =  BitmapFactory.decodeResource(getResources(), R.drawable.test);
        ImageView imageView = (ImageView)findViewById(R.id.imageView);
        imageView.setImageBitmap(bitMap);
        
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
//加载 自定义 的布局!目的是为了让我们控制 要缩放的 大小
//顺便复习一个 自定义布局
				LayoutInflater layout = LayoutInflater.from(MainActivity.this);
				view  = layout.inflate(R.layout.alert_dialog, null);
				AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();
				alert.setIcon(R.drawable.icon);
				alert.setTitle("设置缩放的大小");
				alert.setView(view);
				alert.setButton(getApplicationContext().getText(R.string.YES), yesOnClick);
				alert.setButton2(getApplicationContext().getText(R.string.NO), noOnClick);
				alert.show();
			}
		});
    }

    private final android.content.DialogInterface.OnClickListener yesOnClick = new DialogInterface.OnClickListener() {
		
		@Override
		public void onClick(DialogInterface dialog, int which) {
			imageView01 = (ImageView)findViewById(R.id.imageView01);
			 
//获得 用户输入的 要缩放 图片的高和宽			
			EditText text01 = (EditText)view.findViewById(R.id.height);
			int height = Integer.valueOf(text01.getText().toString());
			
			EditText text02 = (EditText)view.findViewById(R.id.width);
			int width  = Integer.valueOf(text02.getText().toString());
			
			Log.i(TAG, "height---->"+ height+"--->width---->"+width);
//下面才是关键
			Drawable draw = resizeImage(bitMap,height,width);

			imageView01.setBackgroundDrawable(draw);
		}
	};
	private final android.content.DialogInterface.OnClickListener noOnClick = new DialogInterface.OnClickListener() {
		
		@Override
		public void onClick(DialogInterface dialog, int which) {
			finish();
		}
	};
//拿到 要缩放的图片!并指定要缩放的大小
	public static Drawable resizeImage(Bitmap bitmap, int w, int h) {
		
		Bitmap BitmapOld = bitmap;

		int width = BitmapOld .getWidth();
		int height = BitmapOld .getHeight();
		int newWidth = w;
		int newHeight = h;
		
		
		float scaleWidth = ((float) newWidth) / width;
		float scaleHeight = ((float) newHeight) / height;

		
		Matrix matrix = new Matrix();
//将图片翻转 变化
//API 这么 写的 (Postconcats the matrix with the specified scale)
//我的理解就是  根据指定的 大小 在绘制矩阵(就是图片啊)
		matrix.postScale(scaleWidth, scaleHeight);
//重绘 之后的图片
		Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOld, 0, 0, width,height, matrix, true);

		return new BitmapDrawable(resizedBitmap);

	}
}

分享到:
评论

相关推荐

    PHP图片缩放水印类.zip

    2. **图片缩放**:类库提供了多种缩放模式,如: - **裁切缩放模式**:根据预设的宽高比例,裁剪原始图片以适应目标尺寸,保持原图的纵横比。 - **比例缩放模式**:按照指定的比例调整图片大小,保持原图的纵横比...

    js图片缩放效果制作鼠标滚动图片等比例缩放

    总结一下,"js图片缩放效果制作鼠标滚动图片等比例缩放"涉及到的技术点有: 1. JavaScript事件监听:监听鼠标的滚轮事件。 2. CSS3变换:使用`transform`属性进行等比例缩放。 3. 计算缩放比例:根据滚动的增量和...

    qt实现图片缩放

    在Qt框架中,图片缩放是一项常见的图像处理任务,它涉及到图形用户界面(GUI)的开发,特别是当我们要展示或操作图像时。Qt提供了一系列的类和方法来帮助开发者实现这个功能。以下将详细介绍如何使用Qt来实现图片的...

    Android-一个Android图片缩放查看控件支持手势

    这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...

    Android SurfaceView 实现图片缩放 滑动

    在实现图片缩放和滑动时,我们需要利用这一点来确保流畅的用户体验。 1. **SurfaceView的创建与初始化**: 在布局文件中添加SurfaceView,并在Activity的onCreate()方法中找到并初始化它。设置SurfaceHolder的回调...

    MFC图片缩放实例

    在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Class Library)进行图片缩放操作,特别是在将图片缩放以适应背景上的应用场景。MFC是微软为Windows开发的应用程序提供的一套C++类库,它极大地简化了...

    图片缩放图片缩放

    在Authorware这个强大的多媒体创作工具中,图片缩放是一个常用的操作,它可以帮助用户根据需要调整图像的大小,适应不同的展示需求。以下将详细介绍如何在Authorware中进行图片缩放以及相关的知识点。 一、...

    matlab图片缩放代码.zip

    在图像处理领域,图片缩放是一项常见的操作,用于调整图像的尺寸以适应不同的显示或分析需求。本压缩包“matlab图片缩放代码.zip”提供了一组MATLAB代码,包括最近邻插值(singlelineal.m)、双线性插值(double.m)...

    页面中图片缩放拖动

    在网页设计中,图片缩放和拖动是增强用户体验的重要功能。用户可以通过这些交互操作来更细致地查看图片,尤其对于细节丰富的图像或者高分辨率的图片来说,这种功能显得尤为重要。下面将详细介绍如何实现“页面中图片...

    imageQ图片缩放拖拽jQuery小插件

    **imageQ图片缩放拖拽jQuery小插件详解** 在网页设计中,用户交互体验是至关重要的,而图片作为网页内容的重要组成部分,如何提供便捷、直观的操控方式以提升用户体验呢?`imageQ`就是这样一款基于jQuery的插件,它...

    jq图片缩放与拖动

    本实例"jq图片缩放与拖动"是基于jQuery实现的一个功能,允许用户对图片进行缩放和拖动操作,提高了网页的交互性和用户体验。 首先,我们来看"jq图片缩放与拖动"的核心技术点: 1. **jQuery选择器**:jQuery提供了...

    C# 图片缩放和移动程序

    在C#编程环境中,开发一个图片缩放和移动程序是一项常见的任务,特别是在图形用户界面(GUI)应用中。本程序是在.NET Framework 3.5环境下构建的,这意味着它利用了该框架提供的丰富的类库和功能。尽管如此,由于C#...

    图片缩放算法原理

    【图片缩放算法原理】 图片缩放是计算机图形学中常见的操作,用于调整图像的尺寸,使其适应不同的显示需求。图像缩放分为放大和缩小,通常涉及到像素级别的处理。这里我们将探讨一种常用的图像缩放算法——双线性内...

    android imageview 图片缩放

    本文将深入探讨如何在Android中实现ImageView的图片缩放功能,同时结合异步加载和Activity的半透明效果,提升用户体验。 首先,我们要理解Android中ImageView的基本用法。ImageView可以设置为固定大小或根据图片...

    C# winfrom 触摸屏图片缩放 .rar

    在本文中,我们将深入探讨如何使用C# Winform开发一个支持触摸屏的图片缩放应用程序。这个项目的核心技术包括RegisterTouchWindow的使用、控件的子类化以及自定义消息处理,以及通过触摸手势实现图片的等比例缩放。...

    c#图片缩放的简单方法

    C#图片缩放,使用Bitmap的方式,可以将图片按比例缩放,也可以设定固定大小

    Qt 图片缩放,支持滚轮和按键缩放

    在Qt框架下,图片缩放是一项常见的功能,尤其在图形用户界面(GUI)应用中,如图像查看器或编辑器。本项目利用Qt 5.3.2版本实现了这一功能,支持通过滚轮和按键进行图片的放大与缩小,同时具备复位和切换图片的能力...

    jQuery图片缩放例子代码

    下面我们将深入探讨jQuery图片缩放的原理、实现方式以及相关知识点。 首先,我们需要理解jQuery的基本用法。jQuery通过$符号作为函数调用,用于选择DOM元素。例如,`$('img')`会选择所有的图片元素。选择器可以是ID...

    关于图片缩放的若干问题的解决

    在IT领域,图片缩放是一项常见的图像处理任务,它涉及到图像的分辨率调整、尺寸变换以及保持图像质量等关键因素。本文将深入探讨关于图片缩放的若干问题及其解决方案。 首先,我们要理解图片缩放的基本原理。图片是...

    flex 图片缩放移动组件

    本文将详细讲解如何使用Flex创建一个图片缩放移动组件,以及涉及的相关知识点。 首先,我们要理解Flex中的核心组件体系,它包括容器(Container)、基本组件(Basic Components)和自定义组件(Custom Components)...

Global site tag (gtag.js) - Google Analytics