Android 图片放大缩小
Android 图片放大缩小
Android 图片放大缩小- package com.wansha;
- 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.os.Bundle;
- import android.util.DisplayMetrics;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.RelativeLayout;
- public class Activity31 extends Activity {
- private RelativeLayout layout;
- private Button big;
- private Button small;
- private ImageView bg;
- private Bitmap map;
- private float scaleH = 1;
- private float scaleW = 1;
- private int id;
- private DisplayMetrics metrics;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- this.layout = (RelativeLayout)this.findViewById(R.id.la);
- this.big = (Button)this.findViewById(R.id.big);
- this.small = (Button)this.findViewById(R.id.small);
- // this.image2 = (ImageView)this.findViewById(R.id.image1);
- // this.image2.setImageResource(R.drawable.left);
- this.bg = (ImageView)this.findViewById(R.id.bg);
- // this.bg.setImageResource(R.drawable.tttt);
- this.map = BitmapFactory.decodeResource(getResources(), R.drawable.tttt);
- Log.d("mydebug", "imageheigh---->" + map.getWidth() + "imagewidth------->" + map.getHeight());
- metrics = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(metrics);
- // Bitmap bm = Bitmap.createBitmap(map, 0, 0, 100, 100);
- // this.bg.setImageBitmap(bm);
- Log.d("mydebug", "screen_width--------->" + metrics.widthPixels + "screen_height----------->" + metrics.heightPixels);
- this.big.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- float scale = 1.25f;
- Matrix matrix = new Matrix();
- scaleW = scaleW * scale;
- scaleH = scaleH * scale;
- if(scaleH*map.getHeight() >= metrics.heightPixels || scaleW*map.getWidth() >= metrics.widthPixels){
- big.setEnabled(false);
- return;
- }
- if(id == 0){
- layout.removeView(bg);
- }else{
- layout.removeView((ImageView)findViewById(id));
- }
- matrix.postScale(scaleW, scaleH);
- Bitmap bitmap = Bitmap.createBitmap(map, 0, 0, map.getWidth(), map.getHeight(), matrix, true);
- bg.setImageBitmap(bitmap);
- ImageView image = new ImageView(Activity31.this);
- image.setId(++id);
- image.setImageBitmap(bitmap);
- layout.addView(image);
- setContentView(layout);
- System.out.println("bit---------->" + scaleH*scale*map.getHeight() + " : " + scaleW*scale*map.getWidth());
- if(scaleH*scale*map.getHeight() >= metrics.heightPixels || scaleW*scale*map.getWidth() >= metrics.widthPixels){
- big.setEnabled(false);
- }else{
- big.setEnabled(true);
- }
- small.setEnabled(true);
- }
- });
- this.small.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- if(id == 0){
- layout.removeView(bg);
- }else{
- layout.removeView((ImageView)findViewById(id));
- }
- float scale = 0.8f;
- Matrix matrix = new Matrix();
- scaleW = scaleW * scale;
- scaleH = scaleH * scale;
- matrix.postScale(scaleW, scaleH);
- Bitmap bitmap = Bitmap.createBitmap(map, 0, 0, map.getWidth(), map.getHeight(), matrix, true);
- bg.setImageBitmap(bitmap);
- ImageView image = new ImageView(Activity31.this);
- image.setId(++id);
- image.setImageBitmap(bitmap);
- layout.addView(image);
- setContentView(layout);
- if(scaleH*scale <= 0.4){
- small.setEnabled(false);
- }else{
- big.setEnabled(true);
- }
- big.setEnabled(true);
- }
- });
- }
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- // TODO Auto-generated method stub
- super.onSaveInstanceState(outState);
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- System.out.println("keycode--------->" + keyCode);
- if(keyCode == KeyEvent.KEYCODE_BACK){
- new AlertDialog.Builder(this).setTitle("退出").setMessage("确定要退出吗?").setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- }).show();
- }
- return super.onKeyDown(keyCode, event);
- }
- }
评论暂时关闭