我想使用所选的图像来设置按钮并产生对应效果,点击按钮之前同步更新ImageView中的图像,但目前的情况是默认图像而非所选的图像。
imgView = (ImageView) findViewById(R.id.imgView);
btnSepia = (ImageButton) findViewById(R.id.btnSepia);
BitmapDrawable abmp = (BitmapDrawable) imgView.getDrawable();
bmp = abmp.getBitmap();
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setVisibility(View.INVISIBLE);
Intent i = new Intent(
Intent.ACTION_GET_CONTENT,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType("image/");
startActivityForResult(i, RESULT_LOAD_IMAGE);
final Drawable resSepia = new BitmapDrawable(getResources(), bmp);
imgView.setImageDrawable(resSepia);
Handler handler = new Handler();
final Runnable r = new Runnable() {
@Override
public void run() {
if (resSepia == null)
return;
final ColorMatrix matrixA = new ColorMatrix();
// making image B&W
matrixA.setSaturation(0);
final ColorMatrix matrixB = new ColorMatrix();
// applying scales for RGB color values
matrixB.setScale(1f, .95f, .82f, 1.0f);
matrixA.setConcat(matrixB, matrixA);
final ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrixA);
resSepia.setColorFilter(filter);
btnSepia.setImageDrawable(resSepia);
}
};
handler.postDelayed(r, 1000);
btnSepia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imgView.setImageDrawable(resSepia);
}
});
感谢();
抱歉我的英语不是我的母语。