Bitmap newBmap = Bitmap.createBitmap(bmap, 0, 0, bmap.getWidth(), bmap.getHeight(), mx, true);
Activity中没有其他资源了,bmap的图片也很小,为什么新的bmap对象 会出现内存超出呢?
Activity中没有其他资源了,bmap的图片也很小,为什么新的bmap对象 会出现内存超出呢?
解决方案 »
- android中播放视频 使用getNativeSurface FindClass 出错
- android 怎么得到新浪微博的用户昵称
- appwidget 为什么只在部分机型有效呢?
- 关于在Notification跳转到activity的问题
- 怎么实现InputStream.read的超时功能
- Android能否直接从MySQL读取数据在客户端显示出来?还是非得通过Web Service(比如PHP/JSP等动态网页)才能展示..??
- 求助!一简单的listView加载问题
- 如何使用Eclipse的NDK开发动态库,静态库
- 两百分 求 Miracast-sink 应用
- 无法加载项目: com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal er
- BroadcastReceiver怎么传递消息给Service?
- 返回键设置的问题
package com.ImagesZoom;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;public class ImagesZoom extends Activity {
private Button amplify ;
private Button narrow;
private ImageView viewer;
private Bitmap bmap;
private RelativeLayout layout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//init
amplify = (Button) findViewById(R.id.big);
narrow = (Button) findViewById(R.id.small);
layout = (RelativeLayout) findViewById(R.layout.main);
viewer = (ImageView) findViewById(R.id.viewer);
bmap = BitmapFactory.decodeResource(getResources(), R.drawable.cc);
viewer.setImageBitmap(bmap);
amplify.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ImagesZoom.this.amplify(1.25f);
}
});
narrow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ImagesZoom.this.narrow(0.8f);
}
});
}
private void amplify(float f){
Matrix mx = new Matrix();
mx.setScale(bmap.getWidth() * f, bmap.getHeight() * f);
Bitmap newBmap = Bitmap.createBitmap(bmap, 0, 0, bmap.getWidth(), bmap.getHeight(), mx, true);
ImageView reViewer = new ImageView(ImagesZoom.this);
reViewer.setImageBitmap(newBmap);
layout.removeView(viewer);
layout.addView(reViewer);
setContentView(layout);
}
private void narrow(float f){
Matrix mx = new Matrix();
mx.setScale(bmap.getWidth() * f, bmap.getHeight() * f);
Bitmap newBmap = Bitmap.createBitmap(bmap, 0, 0, bmap.getWidth(), bmap.getHeight(), mx, true);
ImageView reViewer = new ImageView(ImagesZoom.this);
reViewer.setImageBitmap(newBmap);
layout.removeView(viewer);
layout.addView(reViewer);
setContentView(layout);
}}
mx.setScale(bmap.getWidth() * f, bmap.getHeight() * f);这个不知道放大多少倍了
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
mx.setScale(scaleWidth,scaleHeight);
private Bitmap bit;
bit=BitmapFactory.decodeResource(getResources(),R.drawable.icon);
Matrix matrix=new Matrix();
//matrix.postScale(bitmapwidth, bitmapheight);
int width,height;
width=bit.getWidth();
height=bit.getHeight();
matrix.postScale(width, height);
Bitmap resizebtm=Bitmap.createBitmap(bit,0,0,width,height,matrix,true);