2012-08-15 25 views
16

Uygulamamın hala yazılım olarak işlenen tek kısmı, yuvarlak bir bitmap çizmem gereken bir görünümün oluşturulmasıdır. Yuvarlak şekle işlemek için gereken bitmap'i kırpmak için clipPath kullanıyorum.Android clipPath donanım eşdeğeri için eşdeğer View

Bu clipPath'in donanımsal hızlandırılmamış olduğunu anlıyorum, ancak donanım hızlandırmayı kullanarak eşdeğer bir işlevsellik sunmamı sağlayan bir algoritma arıyorum.

Özellikle bir kaynak bitmap'inin yuvarlak kırpma bölgesini oluşturmam ve bunu tuvalime yapmam gerekiyor.

cevap

0

Sen emin değilim gerçi donanım hızlanır, bu deneyebilirsiniz:

onCreate içinde

: http://developer.android.com/reference/android/graphics/Paint.html#setXfermode(android.graphics.Xfermode)

  • put:

    • (bitmapPaint denir) boyayı oluşturmak olduğunu setXfermode kullanır Ayrıca bir AvoidXfermode, onun kullanımdan kaldırılmış, oldukça iyi çalışıyor.
    • on içinde için daire çizin

      • görünüm olarak aynı boyutta bir bitmap oluşturmak: (240) gibi yüksek tolerans onLayout içinde

      ile beyaz renkli ve hedef modu geçmek onDraw'da temiz sınırında

    için önleyici takma adını kullanarak beyaz yılında tuval,:

    • ,
    • şimdi boya tuval beyaz daire ile bitmap çizmek Eğer onCreate

    bitmap sadece çemberin içinde oluşturulması gereken oluşturulan bitmapPaint kullanarak boya tuval içinde senin bit eşlem çizin.

  • 0

    Bitmap'iniz çok fazla değişmiyorsa, bir kez yeni bir bitmap'e şekle bir kez kırpın ve kırpılmış bitmap'i onDraw'inizde çizin. İşte

    Eğer aşağıda donanım hızlandırmasını kapatabilir clipPath kullanmak zorunda Bir kaynak bitmap

    Bitmap bitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); 
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    Canvas canvas = new Canvas(bitmap); 
    paint.setColor(Color.RED); 
    // Draw your shape here 
    canvas.drawCircle(cx, cy, radius, paint); 
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));  
    canvas.drawBitmap(sourceBitmap, 0, 0, paint); 
    
    İlgili konular