の寸法のビットマップがあり537 * 233
ます。これは私のフラグメントに表示されます。
コードでもこのビットマップの高さを計算しています。
単純に使って、
image.getHeight()
常に 0 を返します。
次に、オーバーライドされたメソッドに同じものを入れるとonGlobalLayout()
、実際の高さが得られることがわかりました。
私はそれをしました。リンクについては、SO の投稿を参照してください。
今私が得ている高さは155です。
私も高さを取得しようとしましたが、
BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.chart);
imgHeight = bd.getBitmap().getHeight();
再び私が得ている高さは155です。
上記の寸法によると、高さは です233
。
エミュレーターでも同じ高さを見ています。
違いはなぜですか、および/または実際の高さと見なされるのはなぜですか?
アップデート:
わかりました、チャートが入っdrawable-hdpi
ていて、デバイスの密度は です160
。そのため、チャート画像をフォルダーに入れるとdrawable
、正しい高さが得られました。しかし、チャートの高さが固定されている場合 (233)、なぜ一部のデバイスではチャートの高さが下のタイムラインと重なるのに十分な大きさになるのでしょうか。これはおおよその値が原因であり、正確な値 (密度、解像度) ではないことが原因である可能性があることは少し知っていますが、それが不一致の原因となっています。しかし、それを修正する方法はありますか?