2016-08-09 21 views
0

私はAndroidアプリに忍び込んだ本当に面倒なバグがあります。原因を突き止めることはできません(SDK 23にアップグレードした可能性もありますが)。Androidスタジオのデバッグオプション

私は動的にImageViewの要素のシリーズを参照すると、ビットマップでImageViewのを満たしています:

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

ImageViewsのすべてが正しく記入され、現在だけで画像の一つが充填されていません(ただし、他の人がしています)

画像がいっぱいですが、後で上書きされ、隠されたり、背中などに送られたりしているようです。

は私が正しく参照されているImageViewのを確認するために表示されるAndroidのスタジオでデバッガを試してみましたが、そこに画像が「ビットマップ」であるが、それは、その後

を変更した場合、私は見つけれませんように見えることはできませんどのような

質問 は、リソースIDは、私は提案のための私のR.id.inv_image

+0

を使用すると、たとえば、動的にインポートつの静的ビットマップを別のビットマップを設定しようとしたが、していませんか? Log.w()を配置し、ロード中のビットマップを記録して、何が起こっているのかを確認することができます。編集:あなたは、すべてのビットマップが1つを除いてOKをロードされていると言った..これはループ内にありますか?あなたのビットマップの回数だけループが実行されていますか? –

+0

ブレークポイントを試します。私はあなたに現在設定されている値を表示します –

+0

私はデバッグについてはわかりませんが、ロギングを試すことができます。これまでにイメージビューのビットマップを設定した場合、IDがアクセスされていることを示すログ行を追加し、出力ログを確認します(同じIDを持つ行が表示されていればそれを掘り起こす必要があります)これらのパラメータは、 'context.getResources().getIdentifier(result.getView()、" id "、context.getString(R.string.packagename))'という文字列で囲まれています。 – Yazan

答えて

0

おかげへの変更がある場合を知りたいと持っている、すなわち(アクセスされた時はいつでもキャッチするデバッグ「罠」を設定する方法はあります今解決された問題 - 将来誰かに役立つかもしれません!

私はとImageViewのとxmlの設定を持っていた:

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

だから、これはImageViewののベースを固定され、400dpの高さは(ディスプレイの空き容量よりも大きかったです? ImageViewは上部からはみ出していたが、切り捨てられていたのですか?)

私は、sdk 23より前には、ボックスに入れたビットマップをボトムアライメントしていましたが、ビットマップの高さがImageViewの高さと可視のImageViewを完全に埋めました。

sdk 23から、ビットマップが上に揃えられているように見えるので、ビットマップが可視領域の上に配置されているので画像が見えなくなり、ImageViewの空白の底が見えます。

はImageViewの高さ減らすことによってそれを修正:?あなたはそれが23を働いていたが、SDKにアップグレードする前に

android:layout_height="106dp"