私のImageViewはx軸の画面サイズと一致しており、の残りの領域はy軸にのレイアウトで使用しています。 ImageViewと同じサイズでこのImageViewにビットマップを作成したいのですが。どうしたらいいですか?私はいくつかの測定機能を呼び出す必要がありますいくつかの自動設定で行うことができますか?ビットマップを作成する前にImageViewを測定する方法は?
私はSetAdjustViewBounds()を試しましたが、それは私のためには機能しませんでした。
ビットマップを大きく作成すると(私はあまりメモリが無駄になりません)、SetScaleType(ImageView.ScaleType.Matrix)を設定すると、でもキャンバス上で描画操作を行っているときはわかりません実際の大きさの領域はにペイントする必要があります。キャンバスとビットマップの高さはyScreenに等しく、imgWeekViewの高さは灰色の色で全体をペイントしても0になります。
imgWeekView = new ImageView(context);
//imgWeekView.SetAdjustViewBounds(true);
imgWeekView.SetScaleType(ImageView.ScaleType.Matrix);
layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent,1f);
layoutParams.Height = 0;
imgWeekView.LayoutParameters = layoutParams;
Bitmap bitmap = Bitmap.CreateBitmap((int)xScreen, (int)yScreen, Bitmap.Config.Argb8888);
cnvWeekView = new Canvas(bitmap);
imgWeekView.SetImageBitmap(bitmap);
linearLayout.AddView(imgWeekView); //whole activity layout
//Test
cnvWeekView.DrawColor(new Color(128, 128, 128));
Paint paint = new Paint(PaintFlags.AntiAlias);
paint.Color = new Color(255, 255,0);
cnvWeekView.DrawCircle(50, 50, 40, paint);