对于我正在建设的Android应用程序,我做了一个自定义的ImageView类,需要显示在图像上打勾指示此图像已被选中。 我从可绘制的资源中加载了刻度图像并将其显示在图像顶部,并且它工作正常。但是我想要做的是,当可以看到刻度时(即选择图像时),图像变暗,以便您可以清楚地看到刻度。 我该怎么做?安卓系统 - 自定义ImageView与勾选标记图像为选择
我的代码当前如下:
public class TickedImageView extends ImageView {
private boolean selected = true;
private Bitmap tickBmp;
private Paint paint = new Paint();
public TickedImageView(Context context) {
super(context);
tickBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_done_white_48dp);
}
public TickedImageView(Context context, AttributeSet attrs) {
super(context, attrs);
tickBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_done_white_48dp);
}
public void setSelected(boolean selected) {
this.selected = selected;
invalidate();
}
public boolean isSelected() {
return selected;
}
@Override
protected void onDraw(@NonNull Canvas canvas) {
super.onDraw(canvas);
if(selected) {
int margin = 15;
int x = (canvas.getWidth()/2) - (tickBmp.getWidth()/2) - margin;
int y = (canvas.getHeight()/2) - (tickBmp.getHeight()/2) - margin;
canvas.drawBitmap(tickBmp, x, y, paint);
}
}
}
谢谢。
是的,但我从相机胶卷中获取图像。我想要做的是从相机滚动图像变暗,以便我可以清楚地看到白色勾号 – fergaral
对不起...错过了...让我更新我的答案 –