在 MainActivity 类这里有一个地方要注意的就是,我们无法在 onCreate() 方法中获得 4×5 矩阵视图的宽高值,所以通过 View 的 post() 方法,在视图创建完毕后获得其宽高值。如下:
matrixLayout.post(new Runnable() { @Override public void run() { mEtWidth = matrixLayout.getWidth() / 5; mEtHeight = matrixLayout.getHeight() / 4; addEts(); initMatrix(); }});
接下来是 MainActivity 类的全部代码:
public class MainActivity extends AppCompatActivity implements View。OnClickListener { Bitmap bitmap; ImageView iv_photo; GridLayout matrixLayout; //每个edittext的宽高 int mEtWidth; int mEtHeight; //保存20个edittext EditText[] mEts = new EditText[20]; //一维数组保存20个矩阵值 float[] mColorMatrix = new float[20]; @Override protected void onCreate(Bundle savedInstanceState) { super。onCreate(savedInstanceState); setContentView(R。layout。activity_main); bitmap = BitmapFactory。decodeResource(getResources(), R。drawable。iv_model); iv_photo = (ImageView) findViewById(R。
id。iv_photo); matrixLayout = (GridLayout) findViewById(R。id。matrix_layout); Button btn_change = (Button) findViewById(R。id。btn_change); Button btn_reset = (Button) findViewById(R。id。btn_reset); btn_change。setOnClickListener(this); btn_reset。setOnClickListener(this); iv_photo。setImageBitmap(bitmap); //我们无法在onCreate()方法中获得视图的宽高值,所以通过View的post()方法,在视图创建完毕后获得其宽高值 matrixLayout。post(new Runnable() { @Override public void run() { mEtWidth = matrixLayout。getWidth() / 5; mEtHeight = matrixLayout。getHeight() / 4; addEts(); initMatrix(); } }); } //动态添加edittext private void addEts() { for (int i = 0; i < 20; i++) { EditText et = new EditText(this); et。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-84905-3.html
美国的最终目的就是把世界上所有的大国分割成小国