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日

最近浏览
