تغيير حجم قماش الصورة النقطية
-
26-09-2019 - |
سؤال
أحاول رسم مستطيل أعلى الصورة وأواجه مشكلة في وضع الفن على الصورة. جزء فقط من المستطيل يظهر في مكان ما في أسفل الشاشة. هذا ما أفعله:
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);
لا تنتمي إلى StackOverflow