public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private MyImageView myImageView;
private EditText[] editTexts = new EditText[20];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myImageView = (MyImageView) findViewById(R.id.img);
for (int i = 0; i < 20; i++) {
editTexts[i] = (EditText) findViewById(R.id.value_01+i);
}
findViewById(R.id.sure).setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
float[] floats = new float[20];
float temp = 0;
for (int i = 0; i < 20; i++) {
try {
temp = Float.valueOf(editTexts[i].getText().toString().trim());
} catch (NumberFormatException e) {
e.printStackTrace();
}
floats[i] = temp;
}
myImageView.setArray(floats);
}
}
MyImageView:
public class MyImageView extends View{
private Bitmap bitmap;
private Paint paint;
private boolean isFirst = true;
public MyImageView(Context context) {
super(context);
}
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.test);
paint = new Paint();
paint.setAntiAlias(true);
}
public MyImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
if(isFirst){
isFirst = false;
ViewGroup.LayoutParams params = getLayoutParams();
params.width = bitmap.getWidth();
params.height = bitmap.getHeight();
setLayoutParams(params);
}
canvas.drawBitmap(bitmap,0,0,paint);
}
public void setArray(float[] floats) {
ColorMatrix matrix = new ColorMatrix(floats);
ColorMatrixColorFilter colorMatrixColorFilter = new ColorMatrixColorFilter(matrix);
paint.setColorFilter(colorMatrixColorFilter);
invalidate();
}
}