无法检查ImageView是否包含图像

时间:2018-03-13 05:28:41

标签: java android imageview

我希望能够在按下按钮时检查ImageView是否包含图像。我的ImageViewCardView包围。

            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="5dp"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:id="@+id/cardViewAE"
                app:cardCornerRadius="8dp"
                app:cardElevation="0dp">

                <ImageView
                    android:id="@+id/imageView"
                    android:layout_width="match_parent"
                    android:layout_height="200sp"
                    android:scaleType="centerCrop"
                    android:background="@color/colorIV"
                    />
            </android.support.v7.widget.CardView>

我已在主java类中正确声明了imageView。

ImageView flyerImageView;
flyerImageView = (ImageView) findViewById(R.id.imageView);

我做一个if语句来检查imageView是否为null,但是,即使imageView中没有图像,它也不会执行if语句中的代码。

submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            TextView errorLabel = (TextView)findViewById(R.id.errorTV);

            if (flyerImageView.getDrawable() == null){
                errorLabel.setText("You forgot to choose your event flyer.");
            }
     }

2 个答案:

答案 0 :(得分:1)

boolean ishaveImage = (imageView.getDrawable() != null);

if (ishaveImage) {
    // image available
} else {
    // no image available
}

答案 1 :(得分:0)

试试这个

publie static boolean hasNullOrEmptyDrawable(ImageView iv)
{
Drawable drawable = iv.getDrawable();
BitmapDrawable bitmapDrawable ;
if(drawable!=null)
bitmapDrawable= drawable instanceof BitmapDrawable ? (BitmapDrawable)drawable : null;

return drawable==null || bitmapDrawable == null || bitmapDrawable.getBitmap() == null;
}