为了账号安全,请及时绑定邮箱和手机立即绑定

Android Studio如何检查图像视图是否已经显示图像,如果是则禁用意图

Android Studio如何检查图像视图是否已经显示图像,如果是则禁用意图

江户川乱折腾 2022-07-27 11:21:31
我正在制作一个具有以下布局的应用程序:主应用程序布局在应用程序中,我使用“拍照”按钮从手机调用相机意图来拍照。图片被显示到图像视图中(在布局中以红色勾勒)。我还使用保存按钮通过意图将图片保存到图库。我还使用签名按钮来捕获用户的签名。签名有自己的布局。布局包括以下内容:签名布局但是,假设我打开应用程序并在当前没有显示图像时点击保存按钮。尽管没有图片,我的保存按钮目前仍然可以使用并拉出图库。我的签名布局中的保存按钮也会发生同样的事情。如果当前没有签名,保存按钮仍然保存。我将如何将其编码到可以检查当前是否已显示图片或已显示签名的位置,如果没有,则禁用我的签名和主应用程序布局中的保存按钮。我知道禁用按钮的语法是:myButton.setEnabled(false);我在主应用程序布局中的保存按钮有以下代码: //this save button is for the gallery app after you take a photo saveButton.setOnClickListener(new View.OnClickListener()    {        @Override        public void onClick(View v)        {            //launch the gallery app intent            Intent intent = new Intent();            intent.setAction(android.content.Intent.ACTION_VIEW);            intent.setType("image/*");            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            startActivity(intent);            Toast.makeText(DriverActivity.this, "Image Saved to Gallery", Toast.LENGTH_SHORT).show();            /*if there is currently no image, disable save button and display a toast message            Toast.makeText(DriverActivity.this, "There's no image currently shown.", Toast.LENGTH_SHORT).show();*/        }    });    // restoring storage image path from saved instance state    // otherwise the path will be null on device rotation    restoreFromBundle(savedInstanceState);
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

在包含 ImageView 的布局中,可以为照片的 ImageView 使用“tag”属性;如果标记为“false”,则没有与 ImageView 关联的图像,然后您可以禁用保存按钮;如果它是“真”那么有一个,你可以启用保存按钮。


<ImageView

    android:id="@+id/image"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:tag="false" />

行为


ImageView image = findViewById(R.id.image);


if ((Boolean) image.getTag()) { // No image

    // Disable save button

    mBtnSave.setEnabled(false);

} else {

    mBtnSave.setEnabled(true);

}

无论何时拍照,都应将 ImageView 的标签更改为“true”


image.setTag("true");

编辑:


当您使用不同的活动进行签名时,您还必须使用startActivityForResult()哪个将启动 SignatureActivity 并在完成后等待结果;如果您收到签名成功,您可以按照上述步骤将签名图像标签设置为“true”,否则为“false”。 在这里你可以找到如何使用startActivityForResult()


查看完整回答
反对 回复 2022-07-27
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您可以按照我所做的以下步骤执行此操作

  • 创建一个Boolean变量并将其值初始化为false

  • 当您从 Intent 获取图像时,将其值设置为 true

  • 现在您可以检查Button单击,如果值是false则不保存图片或数据,如果值是true则保存图像或数据。

它对我有用。


查看完整回答
反对 回复 2022-07-27
  • 2 回答
  • 0 关注
  • 308 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号