我使用以下代码从图库中选择图像并使用ImageView显示它:
@Override
protected void onActivityResult(int RC, int RQC, Intent I) {
super.onActivityResult(RC, RQC, I);
if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) {
Uri uri = I.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
目前,使用方法ImageUploadToServerFunction()
,即使没有选择图像,也会启动上传。最后,应用程序崩溃了。
我的问题:
如果没有选择图像,我该怎么做,不开始上传并发布Toast
?
if (imageView == ???) {
ImageUploadToServerFunction();
} else {
Toast.makeText(MainActivity.this, "No image selected!", Toast.LENGTH_LONG).show();
}
更新的答案:单击按钮(android:onClick =" OnButton")时执行此if语句,如果没有选择图像,应用程序将以与之前相同的方式。为什么?怎么了?
public class MainActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anghinzu);
imageView = (ImageView)findViewById(R.id.ivFoto);
SelectImageGallery = (ImageButton)findViewById(R.id.btnChoose);
SelectImageGallery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Image From Gallery"), 1);
}
});
}
@Override
protected void onActivityResult(int RC, int RQC, Intent I) {
super.onActivityResult(RC, RQC, I);
if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) {
Uri uri = I.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void ImageUploadToServerFunction(){
...
}
public void OnButton(View view) {
//Upload Image
if (hasImage(imageView)) {
ImageUploadToServerFunction();
} else {
Toast.makeText(MainActivity.this, "Kein Bild ausgewählt!", Toast.LENGTH_LONG).show();
}
}
}

答案 0 :(得分:0)
您可以检查ImageView
是否有任何图像,
private boolean hasImage(@NonNull ImageView view) {
Drawable drawable = view.getDrawable();
boolean hasImage = (drawable != null);
if (hasImage && (drawable instanceof BitmapDrawable)) {
hasImage = ((BitmapDrawable)drawable).getBitmap() != null;
}
return hasImage;
}
答案 1 :(得分:0)
试试这个:
if(imageView.getDrawable() == null){
// Image not exist...
} else {
// Image Exists!
}
这段代码工作正常,我刚从StackOverflow找到它。