package com.imooc.myapplication;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.EditText;
import android.widget.GridLayout;
public class ImageMatrixTest extends Activity {
private GridLayout mGridGroup;
private ImageMatrixView mMyView;
private Bitmap mBitmap;
private int mEtWidth = 0;
private int mEtHeight = 0;
private float[] mImageMatrix = new float[9];
private EditText[] mETs = new EditText[9];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.colormatrix);
mGridGroup = (GridLayout) findViewById(R.id.grid_group);
mMyView = (ImageMatrixView) findViewById(R.id.view);
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
mGridGroup.post(new Runnable() {
@Override
public void run() {
mEtWidth = mGridGroup.getWidth() / 3;
mEtHeight = mGridGroup.getHeight() / 3;
addEts();
initImageMatrix();
}
});
}
private void addEts() {
for (int i = 0; i < 9; i++) {
EditText et = new EditText(ImageMatrixTest.this);
et.setGravity(Gravity.CENTER);
mETs[i] = et;
mGridGroup.addView(et, mEtWidth, mEtHeight);
}
}
private void getImageMatrix() {
for (int i = 0; i < 9; i++) {
EditText et = mETs[i];
mImageMatrix[i] = Float.valueOf(et.getText().toString());
}
}
private void initImageMatrix() {
for (int i = 0; i < 9; i++) {
if (i % 4 == 0) {
mETs[i].setText(String.valueOf(1));
} else {
mETs[i].setText(String.valueOf(0));
}
}
}
public void change(View view) {
getImageMatrix();
Matrix matrix = new Matrix();
matrix.setValues(mImageMatrix);
// matrix.setRotate(45);
// matrix.postTranslate(200, 200);
// matrix.setTranslate(200, 200);
// matrix.preRotate(45);
// matrix.setScale(1, -1);
// matrix.postRotate(45);
// matrix.postTranslate(0, 200);
mMyView.setImageAndMatrix(mBitmap, matrix);
mMyView.invalidate();
}
public void reset(View view) {
initImageMatrix();
getImageMatrix();
Matrix matrix = new Matrix();
matrix.setValues(mImageMatrix);
mMyView.setImageAndMatrix(mBitmap, matrix);
mMyView.invalidate();
}
}