سؤال

أحاول رسم مستطيل أعلى الصورة وأواجه مشكلة في وضع الفن على الصورة. جزء فقط من المستطيل يظهر في مكان ما في أسفل الشاشة. هذا ما أفعله:

SineWave هي الصورة من المجلد القابل للرسوم

public void onDraw(Canvas canvas) 
{
     Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sinewave);
     canvas.drawBitmap(myBitmap, 0, 0, null);

     Paint myPaint = new Paint();
     myPaint.setColor(Color.GREEN);
     myPaint.setStyle(Paint.Style.STROKE);
     myPaint.setStrokeWidth(3);
     canvas.drawRect(0, 35 ,80 , 20, myPaint);
}

أنا غير قادر على تجاوز 35 ، أريد وضع المستطيل في منتصف صورة الجيافي. هل يمكن لشخص ما أن يساعدني في أفكارهم.

هل كانت مفيدة؟

المحلول

لست متأكدًا مما إذا كان هذا سينجح ، ولكن هناك طريقة GetScaledheight والعرض على صورة نقطية يمكن أن تجربها. إذا حصل هذا على الحدود الصحيحة ، فهذا من شأنه أن يرسم مستطيلًا على الحدود الخارجية ، ولكن يمكنك التكيف للحصول عليه حيث تحتاج.

int height = bm.getScaledHeight(canvas);
int width = bm.getScaledWidth(canvas);
Rect r = new Rect(0, 0, width, height);
canvas.drawRect(r, paint);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top