私のコードではImage View
、XMLレイアウトにがあり、コード内でこれのソース画像を変更し続けています。ここで、生成された画像の幅と高さを毎回知りたいと思います。
getWidth()
、、getHeight(),
getMeasuredWidth(),
を 使用してみgetMeasuredHeight()
ましたが、すべて0を返します。
どうすればこれを入手できますか?
どこで呼び出しgetWidth()
てgetHeight()
、ImageView を使用していますか? 活動中から呼び出してonCreate()
も機能しません。アクティビティ ウィンドウがアタッチされるのを待ってからgetWidth() and getHeight()
、ImageView を呼び出す必要があります。getWidth() and getHeight()
アクティビティのメソッドから呼び出しを試すことができonWindowFocusChanged()
ます。
@Override
public void onWindowFocusChanged(boolean hasFocus){
int width=imageView.getWidth();
int height=imageView.getHeight();
}
これを試して
ImageView iv=(ImageView)findViewById(R.id.image);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
finalHeight = iv.getMeasuredHeight();
finalWidth = iv.getMeasuredWidth();
Log.e("hilength","Height: " + finalHeight + " Width: " + finalWidth);
return true;
}
});
ImageView をドローアブルに設定し、ImageView の高さと幅のタイプが WRAP_CONTENT の場合、これによって ImageView の高さと幅を取得できます。onCreate()
int height = imageView.getDrawable().getIntrinsicHeight();
int width = imageView.getDrawable().getIntrinsicWidth();
まず、イメージを mutablebitmap に変換し、イメージの幅と高さを取得しようとする必要があります。ほとんどの場合、これで問題が解決します。
Bitmap Rbitmap = Bitmap.createBitmap(bitmap).copy(
Config.ARGB_4444, true);
Rbitmap.getWidth();
Rbitmap.getheight();
画像オブジェクトを参照する方法が間違っています。そのため、常にゼロが与えられます。最初に imageview からビットマップ オブジェクトを作成し、そこから幅と高さを取得します。
カムから画像を撮ったとき、私は次のことを行い、それは魅力のように機能します。
Bitmap image2 = (Bitmap) data1.getExtras().get("data");
double width = Double.valueOf(image2.getWidth());
Log.v("WIDTH", String.valueOf(width));
double height = Double.valueOf(image2.getHeight());
Log.v("height", String.valueOf(height));
お役に立てば幸いです。