package ycitss.matrix.activity; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { private Button myButton1; private Button myButton2; private TextView myTextView; private ImageView myImageView; private LinearLayout layout1; private Bitmap bmp; private int id = 0; private int displayWidth; private int displayHeight; private float scaleWidth = 1; private float scaleHeight = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myButton1 = (Button) findViewById(R.id.myButton1); myButton2 = (Button) findViewById(R.id.myButton2); myTextView = (TextView) findViewById(R.id.myTextView); myImageView = (ImageView) findViewById(R.id.myImageView); layout1 = (LinearLayout) findViewById(R.id.layout1); // 取得屏幕分辨率大小 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); displayHeight = dm.heightPixels - myButton1.getHeight() - myButton2.getHeight() - myTextView.getHeight(); displayWidth = dm.widthPixels; bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bg3); myTextView.setText(bmp.getWidth() + " * " + bmp.getHeight()); // 放大按钮 myButton1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { big(); } }); // 缩小按钮 myButton2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { small(); } }); } private void small() { int bmpWidth = bmp.getWidth(); int bmpHeight = bmp.getHeight(); // 设置图片缩小比例 double scale = 0.8; // 计算出这次要缩小的比例 scaleWidth = (float) (scaleWidth * scale); scaleHeight = (float) (scaleHeight * scale); // 产生reSize后的Bitmap对象 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true); if (id == 0) { // 如果是第一次按,就删除原来默认的ImageView layout1.removeView(myImageView); } else { // 如果不是第一次按,就删除上一次放大或缩小所产生的ImageView layout1.removeView((ImageView) findViewById(id)); } id++; ImageView imageView = new ImageView(this); imageView.setId(id); imageView.setImageBitmap(resizeBmp); layout1.addView(imageView); setContentView(layout1); myTextView.setText(resizeBmp.getWidth()+ " * " +resizeBmp.getHeight()); if (scaleWidth * scale * bmpWidth < 2 || scaleHeight * scale * bmpHeight < 2) { myButton2.setEnabled(false); } // 图片片放到最大后,放大按钮会disable,所以再缩小的时候把它重设为enable myButton1.setEnabled(true); } private void big() { int bmpWidth = bmp.getWidth(); int bmpHeight = bmp.getHeight(); // 设置图片放大比例 double scale = 1.25; // 计算出这次要放大的比例 scaleWidth = (float) (scaleWidth * scale); scaleHeight = (float) (scaleHeight * scale); // 产生reSize后的Bitmap对象 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true); if (id == 0) { // 如果是第一次按,就删除原来默认的ImageView layout1.removeView(myImageView); } else { // 如果不是第一次按,就删除上一次放大或缩小所产生的ImageView layout1.removeView((ImageView) findViewById(id)); } id++; ImageView imageView = new ImageView(this); imageView.setId(id); imageView.setImageBitmap(resizeBmp); layout1.addView(imageView); setContentView(layout1); myTextView.setText(resizeBmp.getWidth()+ " * " +resizeBmp.getHeight()); if (scaleWidth * scale * bmpWidth > displayWidth || scaleHeight * scale * bmpHeight > displayHeight) { myButton1.setEnabled(false); } myButton2.setEnabled(true); } }
最近下载更多
aaa5849310 LV25
2021年3月11日
啧啧zz LV2
2019年12月17日
女方面 LV18
2019年11月5日
wangshihua LV19
2019年5月10日
woshixunlinxuan LV1
2019年1月4日
ginlools LV2
2018年12月4日
rf502156762 LV8
2018年1月10日
xixixib LV8
2018年1月9日
2506894463 LV7
2017年11月8日
wujj_wtj LV3
2017年8月30日