2016-08-09 102 views
0

我有一個非常惱人的bug已經悄悄進入我的android應用程序,我找不到原因(儘管可能是因爲我升級到SDK 23)。Android Studio調試選項

我動態引用了一系列的ImageView元素,並用位圖填充的ImageView:

ImageView img = (ImageView) activity.findViewById(context.getResources().getIdentifier(result.getView(), "id", context.getString(R.string.packagename))); 
img.setImageBitmap(bitmap); 

所有ImageViews均正確,現在填充只是一個圖像不填充(其他的都)

我懷疑圖像正在填充,但隨後被覆蓋,隱藏,發回或其他東西。

我曾嘗試在Android Studio中的調試器,似乎證實了ImageView的被正確引用,並有一個形象的「位圖」,但似乎什麼我不能做的是找到,如果它隨後被更改

問題 有沒有一種方法來設置調試「陷阱」捕捉每當資源ID被訪問(即我想知道如果有改變我的R.id.inv_image

+0

升級到SDK 23是它的工作之前,你試圖設置不同的位圖,但不能動態例如一個靜態的位圖,你輸入:

通過減少的ImageView的高度固定的呢?你可以放一個Log.w()並記錄正在加載的位圖來查看發生了什麼。編輯:你說所有的位圖加載好除了一..這是在一個循環?你確定循環的執行次數與你的位圖一樣多嗎? –

+0

嘗試斷點我會告訴你當前正在設置的值 –

+0

我不清楚調試,但你可以嘗試記錄;你在哪裏設置圖像視圖的位圖添加一個顯示被訪問ID的日誌行,並查看輸出日誌,如果你看到一行重複(具有相同的ID),那麼這就是你需要挖掘(建議)loga行包含這些參數'context.getResources()。getIdentifier(result.getView(),「id」,context.getString(R.string.packagename))'將其包裝起來,所有日誌都不應該顯示相同的ID兩次。 – Yazan

回答

0

感謝的建議和有現在解決問題 - 可能對未來某人有所幫助!

我曾與和xml設置一個ImageView的:

android:layout_height="400dp" 
android:layout_alignBottom="@+id/value_title" 

所以這個錨定的ImageView和400dp高度的基部比顯示器(上的可用空間更大? ImageView被伸出頂部,但截斷??)

我相信,在sdk 23之前,我放在盒子裏的位圖是底部對齊的,我可以看到它沒有問題,因爲位圖的高度大約是ImageView的高度,並完美地填充可見的ImageView。

從sdk 23看起來位圖是頂部對齊的,所以圖像是不可見的,因爲位圖放置在可視區域上方,而我所能看到的只是ImageView的空白底部。 ?

android:layout_height="106dp"