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); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值