话不多说,直接看代码!
代码就一个文件!
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);
}
}
分享到:
相关推荐
2. **图片缩放**:类库提供了多种缩放模式,如: - **裁切缩放模式**:根据预设的宽高比例,裁剪原始图片以适应目标尺寸,保持原图的纵横比。 - **比例缩放模式**:按照指定的比例调整图片大小,保持原图的纵横比...
总结一下,"js图片缩放效果制作鼠标滚动图片等比例缩放"涉及到的技术点有: 1. JavaScript事件监听:监听鼠标的滚轮事件。 2. CSS3变换:使用`transform`属性进行等比例缩放。 3. 计算缩放比例:根据滚动的增量和...
在Qt框架中,图片缩放是一项常见的图像处理任务,它涉及到图形用户界面(GUI)的开发,特别是当我们要展示或操作图像时。Qt提供了一系列的类和方法来帮助开发者实现这个功能。以下将详细介绍如何使用Qt来实现图片的...
这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...
在实现图片缩放和滑动时,我们需要利用这一点来确保流畅的用户体验。 1. **SurfaceView的创建与初始化**: 在布局文件中添加SurfaceView,并在Activity的onCreate()方法中找到并初始化它。设置SurfaceHolder的回调...
在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Class Library)进行图片缩放操作,特别是在将图片缩放以适应背景上的应用场景。MFC是微软为Windows开发的应用程序提供的一套C++类库,它极大地简化了...
在Authorware这个强大的多媒体创作工具中,图片缩放是一个常用的操作,它可以帮助用户根据需要调整图像的大小,适应不同的展示需求。以下将详细介绍如何在Authorware中进行图片缩放以及相关的知识点。 一、...
在图像处理领域,图片缩放是一项常见的操作,用于调整图像的尺寸以适应不同的显示或分析需求。本压缩包“matlab图片缩放代码.zip”提供了一组MATLAB代码,包括最近邻插值(singlelineal.m)、双线性插值(double.m)...
在网页设计中,图片缩放和拖动是增强用户体验的重要功能。用户可以通过这些交互操作来更细致地查看图片,尤其对于细节丰富的图像或者高分辨率的图片来说,这种功能显得尤为重要。下面将详细介绍如何实现“页面中图片...
**imageQ图片缩放拖拽jQuery小插件详解** 在网页设计中,用户交互体验是至关重要的,而图片作为网页内容的重要组成部分,如何提供便捷、直观的操控方式以提升用户体验呢?`imageQ`就是这样一款基于jQuery的插件,它...
本实例"jq图片缩放与拖动"是基于jQuery实现的一个功能,允许用户对图片进行缩放和拖动操作,提高了网页的交互性和用户体验。 首先,我们来看"jq图片缩放与拖动"的核心技术点: 1. **jQuery选择器**:jQuery提供了...
在C#编程环境中,开发一个图片缩放和移动程序是一项常见的任务,特别是在图形用户界面(GUI)应用中。本程序是在.NET Framework 3.5环境下构建的,这意味着它利用了该框架提供的丰富的类库和功能。尽管如此,由于C#...
【图片缩放算法原理】 图片缩放是计算机图形学中常见的操作,用于调整图像的尺寸,使其适应不同的显示需求。图像缩放分为放大和缩小,通常涉及到像素级别的处理。这里我们将探讨一种常用的图像缩放算法——双线性内...
本文将深入探讨如何在Android中实现ImageView的图片缩放功能,同时结合异步加载和Activity的半透明效果,提升用户体验。 首先,我们要理解Android中ImageView的基本用法。ImageView可以设置为固定大小或根据图片...
在本文中,我们将深入探讨如何使用C# Winform开发一个支持触摸屏的图片缩放应用程序。这个项目的核心技术包括RegisterTouchWindow的使用、控件的子类化以及自定义消息处理,以及通过触摸手势实现图片的等比例缩放。...
C#图片缩放,使用Bitmap的方式,可以将图片按比例缩放,也可以设定固定大小
在Qt框架下,图片缩放是一项常见的功能,尤其在图形用户界面(GUI)应用中,如图像查看器或编辑器。本项目利用Qt 5.3.2版本实现了这一功能,支持通过滚轮和按键进行图片的放大与缩小,同时具备复位和切换图片的能力...
下面我们将深入探讨jQuery图片缩放的原理、实现方式以及相关知识点。 首先,我们需要理解jQuery的基本用法。jQuery通过$符号作为函数调用,用于选择DOM元素。例如,`$('img')`会选择所有的图片元素。选择器可以是ID...
在IT领域,图片缩放是一项常见的图像处理任务,它涉及到图像的分辨率调整、尺寸变换以及保持图像质量等关键因素。本文将深入探讨关于图片缩放的若干问题及其解决方案。 首先,我们要理解图片缩放的基本原理。图片是...
本文将详细讲解如何使用Flex创建一个图片缩放移动组件,以及涉及的相关知识点。 首先,我们要理解Flex中的核心组件体系,它包括容器(Container)、基本组件(Basic Components)和自定义组件(Custom Components)...