Android'i bir oyun yazarak öğreniyorum ve grafik API'sinde sorun yaşıyorum.Kenarlıklı geçerli resim klibi üzerinde bitmapi çizim (Boya)
Bir yolun görüntüsüne bir resim çizip, sonra da Yol üzerinde kenarlık eklemek istiyorum. Resmi Yol ile kırpmayı başardım, ancak kenarlık eklemenin bir yolunu bulamıyorum. Basit olsa da, API Canvas.draw * yöntemlerinde Paint nesnesini desteklediğinden dolayı basit olurdu. Orijinal soruda
Güncelleme
, benim Yolu iki dikdörtgenleri içeren ve Christopher-souvey @ doğru cevap. Ancak, bir tane daha clipPath() yöntemi eklerken başka bir sorunla karşılaşıyorum.
Önceki kodu, bir başka çevre yolu ekleyerek güncelleştirdim.
Bitmap srcImage = BitmapFactory.decodeStream(getAssets().open("panda.jpg"));
Bitmap bitmapResult = Bitmap.createBitmap(srcImage.getWidth(), srcImage.getHeight(), Bitmap.Config.ARGB_8888);
Path path = new Path();
// This is my border
Paint paint = new Paint();
paint.setStyle(Style.STROKE);
paint.setColor(Color.RED);
paint.setStrokeWidth(2);
paint.setAntiAlias(true);
Canvas canvas = new Canvas(bitmapResult);
// Overlay two rectangles
path.addRect(10, 10, 70, 70, Path.Direction.CCW);
path.addRect(40, 40, 120, 120, Path.Direction.CCW);
canvas.drawPath(path , paint);
canvas.clipPath(path, Region.Op.INTERSECT);
path.reset();
path.addCircle(40, 80, 20, Path.Direction.CCW);
canvas.drawPath(path , paint);
canvas.clipPath(path, Region.Op.DIFFERENCE);
// The image is drawn within the area of two rectangles and a circle
// Although I suppose that puting Paint object into drawBitmap() method will add a red border on result image but it doesn't work
canvas.drawBitmap(srcImage, 0, 0, paint);
((ImageView)this.findViewById(R.id.imageView1)).setImageBitmap(bitmapResult);
İşte benim kodundan sonucudur: İşte benim yeni kod http://i.stack.imgur.com/8j2Kg.png
Ve bu beklediğim şudur: http://i.stack.imgur.com/iKhIr.png
Ben o iş yapmak için her şeyi özlüyor musun?
DrawBitmap öğesindeki boya öğesi Kenarlık rengi değildir: http://developer.android.com/reference/android/graphics/Canvas.html#drawBitmap(android.graphics.Bitmap, android.graphics.Matrix, android. graphics.Paint) –
DrawRect(), drawCircle() ile Paint ile sınır oluşturabiliriz. Nasıl olur da drawBitmap() –