2017-03-24 48 views
0

問題是關於ImageView的android系統:我如何知道imageview被設置爲可繪製的或不是特定的?

有一個ImageView的,之後我打電話的方法一樣

imageview.setImageDrawable(drawable) 

imageview.setImageBitmap(bitmap) 

然後繪製將在ImageView的被drawned,我想知道在我調用另一個setXXXDrawable/Bitmap方法到相同的圖像視圖之前,在這個圖像視圖上繪製的drawable是否已經被其他操作改變了?或者自從我上次調用以來,imageview上顯示的圖像發生了變化?

任何幫助將不勝感激〜thks!

+0

嘗試使用imageview.getDrawable();並比較 – Nabil

+0

嘗試自定義ImageView以檢測圖像更改,自定義ImageView類作爲答案發布,請chekc讓我知道它是否適合您,請考慮在您使用它們時添加setImageBitmap和setImageDrawable方法。 –

回答

-1

您可以檢查圖像是否已被分配的可繪製或不如下:

if(imageView.getDrawable() != null) { 
    // you can get the drawable that has been assigned to it 
} else { 
    // assign the desired drawable 
    imageview.setImageDrawable(drawable) 
} 
+0

你已經回答的不是匹配的要求,Alex要求檢測圖像變化,但是你的答案會做什麼 - >檢測現有的drawable,如果是,那麼確定其他的分配新的drawable。 –

0

您可以創建自己的ImageView檢測圖像的變化,下面是桑迪的回答類,嘗試用它, setImageChangeListner()檢測圖像變化。

public class MyImageView extends ImageView { 

    private OnImageChangeListiner onImageChangeListiner; 


    public MyImageView(Context context) { 
     super(context); 
    } 

    public MyImageView(Context context, AttributeSet attributeSet) {   
     super(context, attributeSet); 
    } 


    public void setImageChangeListiner(
      OnImageChangeListiner onImageChangeListiner) { 
     this.onImageChangeListiner = onImageChangeListiner; 
    } 

    @Override 
    public void setBackgroundResource(int resid) { 
     super.setBackgroundResource(resid); 
     if (onImageChangeListiner != null) 
      onImageChangeListiner.imageChangedinView(this); 
    } 


    @Override 
    public void setBackgroundDrawable(Drawable background) { 
     super.setBackgroundDrawable(background); 
     if (onImageChangeListiner != null) 
      onImageChangeListiner.imageChangedinView(this); 
    } 


    public static interface OnImageChangeListiner { 
     public void imageChangedinView(ImageView mImageView); 
    } 
} 

參考鏈接:ImageView onImageChangedListener Android

0

首先從imageView.getDrawable()方法被拉伸並從繪製,你剛剛得到的bimap。現在比較這兩個位圖以確定您有兩個相同的圖像或圖像已更改。如果它們相同,它們將具有相同的字節。

相關問題