2011-09-20 65 views
1

我要讓我的應用程序的繪圖表面透明的,使得我的應用程序可以像用戶可以在我的背景圖像上畫,我有以下XML:如何在Android中使畫布透明?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/bg2" 
> 

    <com.almondmendoza.drawings.DrawingSurface 
     android:layout_width="fill_parent" 
     android:layout_height="200dip" 
     android:id="@+id/drawingSurface" 
    /> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" > 

     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="OK" 
       android:onClick="onClick" 
       android:id="@+id/colorGreenBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Scratch" 
       android:onClick="onClick" 
       android:id="@+id/colorRedBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Minor Scratch" 
       android:onClick="onClick" 
       android:id="@+id/colorBlueBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Dent" 
       android:onClick="onClick" 
       android:id="@+id/dentBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Minor Dent" 
       android:onClick="onClick" 
       android:id="@+id/minorDentBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Damaged" 
       android:onClick="onClick" 
       android:id="@+id/damagedBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Undo" 
       android:onClick="onClick" 
       android:id="@+id/undoBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Redo" 
       android:onClick="onClick" 
       android:id="@+id/redoBtn" /> 
     <Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Save" 
       android:onClick="onClick" 
       android:id="@+id/saveBtn" /> 

    </LinearLayout> 

</RelativeLayout> 

的XML的輸出中上面的代碼是這樣的:

enter image description here

正如你所看到的繪圖表面是屏幕的黑色部分。我希望這是透明的,這可能嗎?

非常感謝您的幫助! :)

回答

1
package com.logistics.kiddiekuts.Trans; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.graphics.RectF; 
import android.graphics.Paint.Style; 
import android.util.AttributeSet; 
import android.widget.RelativeLayout; 

public class TransparentPanel extends RelativeLayout { 
    private Paint innerPaint, borderPaint; 

    public TransparentPanel(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    public TransparentPanel(Context context) { 
     super(context); 
     init(); 
    } 

    private void init() { 
     innerPaint = new Paint(); 
     innerPaint.setARGB(225, 225, 225, 225); // gray 
     innerPaint.setAntiAlias(true); 

     borderPaint = new Paint(); 
     borderPaint.setARGB(255, 255, 255, 255); 
     borderPaint.setAntiAlias(true); 
     borderPaint.setStyle(Style.STROKE); 
     borderPaint.setStrokeWidth(2); 
    } 

    public void setInnerPaint(Paint innerPaint) { 
     this.innerPaint = innerPaint; 
    } 

    public void setBorderPaint(Paint borderPaint) { 
     this.borderPaint = borderPaint; 
    } 

    protected void dispatchDraw(Canvas canvas) { 

     RectF drawRect = new RectF(); 
     drawRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); 

     canvas.drawRoundRect(drawRect, 8, 8, innerPaint); 
     // canvas.drawRoundRect(drawRect, 5, 5, borderPaint); 

     super.dispatchDraw(canvas); 
    } 
} 

XML ::

   <TextView android:layout_width="wrap_content" 
        android:text="Name :" android:textColor="#000000" 
        android:layout_marginLeft="15dip" android:layout_marginTop="27dip" 
        android:id="@+id/tvname" android:layout_height="wrap_content"></TextView> 
       <EditText android:layout_width="197dip" android:id="@+id/name" 
        android:layout_marginLeft="7dip" android:textSize="12dip" 
        android:layout_marginTop="23dip" android:layout_toRightOf="@+id/tvname" 
        android:layout_height="35dip" /> 

       <TextView android:layout_width="wrap_content" 
        android:text="Phone :" android:textColor="#000000" 
        android:layout_marginLeft="15dip" android:layout_marginTop="18dip" 
        android:layout_below="@+id/tvname" android:id="@+id/tvphone" 
        android:layout_height="wrap_content"></TextView> 
       <EditText android:layout_width="197dip" android:id="@+id/phone" 
        android:textSize="12dip" android:layout_marginLeft="5dip" 
        android:layout_marginTop="3dip" android:layout_toRightOf="@+id/tvphone" 
        android:layout_below="@+id/name" android:layout_height="35dip"></EditText> 

       <TextView android:layout_width="wrap_content" 
        android:text="Email :" android:textColor="#000000" 
        android:layout_marginLeft="15dip" android:layout_marginTop="20dip" 
        android:layout_below="@+id/tvphone" android:id="@+id/tvemail" 
        android:layout_height="wrap_content"></TextView> 
       <EditText android:layout_width="197dip" android:id="@+id/email" 
        android:textSize="12dip" android:layout_marginLeft="9dip" 
        android:layout_marginTop="3dip" android:layout_toRightOf="@+id/tvemail" 
        android:layout_below="@+id/phone" android:layout_height="35dip"></EditText> 


       <TextView android:layout_width="wrap_content" 
        android:text="Category :" android:textColor="#000000" 
        android:layout_marginLeft="15dip" android:layout_marginTop="20dip" 
        android:layout_below="@+id/tvemail" android:id="@+id/tvcategory" 
        android:layout_height="wrap_content"></TextView> 

       <TextView android:layout_width="wrap_content" android:id="@+id/category" 
        android:textColor="#000000" android:layout_marginLeft="10dip" 
        android:text="For Appointment" android:layout_marginTop="8dip" 
        android:layout_toRightOf="@+id/tvcategory" android:layout_below="@+id/email" 
        android:layout_height="wrap_content"></TextView> 


       <TextView android:layout_width="wrap_content" 
        android:text="Location :" android:textColor="#000000" 
        android:layout_marginLeft="15dip" android:layout_marginTop="10dip" 
        android:layout_below="@+id/tvcategory" android:id="@+id/tvlocation" 
        android:layout_height="wrap_content"></TextView> 

       <TextView android:layout_width="wrap_content" android:id="@+id/txtlocation" 
        android:textColor="#000000" android:layout_marginLeft="10dip" 
        android:text="Atlanta,Ga" android:layout_marginTop="10dip" 
        android:layout_toRightOf="@+id/tvlocation" android:layout_below="@+id/category" 
        android:layout_height="wrap_content"></TextView> 


       <TextView android:layout_width="wrap_content" 
        android:textColor="#000000" android:text="Message:" 
        android:layout_marginLeft="15dip" android:layout_marginTop="10dip" 
        android:layout_below="@+id/tvlocation" android:id="@+id/tvatn" 
        android:layout_height="wrap_content"></TextView> 

       <EditText android:layout_width="250dip" android:id="@+id/atn" 
        android:textSize="12dip" android:lines="7" android:layout_below="@+id/tvatn" 
        android:layout_marginLeft="15dip" android:layout_marginTop="3dip" 
        android:gravity="top|left" android:layout_height="wrap_content"></EditText> 
       <Button android:layout_height="25dip" android:layout_below="@+id/atn" 
        android:layout_marginLeft="15dip" android:layout_marginTop="3dip" 
        android:id="@+id/btnsubmit" android:background="@drawable/submit_btn" 


        android:layout_width="250dip"></Button> 
       <TextView android:id="@+id/text" android:layout_width="fill_parent" 
        android:layout_below="@+id/btnsubmit" android:layout_height="wrap_content"></TextView> 
      </com.logistics.kiddiekuts.Trans.TransparentPanel> 
+0

@have任何想法我在應用信施工圖實踐,其中在信所示一樣具有兩個部分1字母d數目)是垂直線和2)是弧,所以第一個數字顯示在第一部分,並只繪製在該部分,如果用戶移動的部分比重新加載視圖完成第一部分第二部分顯示的數字,並只繪製在它上面,需要的東西是假設在第一部分中顯示num 1 2 3,並且用戶移動到1而不是移除那麼等等也避免重繪太..我stucking因爲幾天任何有助於讚賞 – Khan

+0

你應該問作爲一個問題 –

+0

我的問題是在http://stackoverflow.com/questions/10731196/alphabet-drawing-practice-in-android – Khan