2011-09-20 12 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의 OUPUT을 위의 코드는 다음과 같다 :

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 ::

수는 편지 D는 두 개의 파트 1을 가진 같은 편지에 나와있는 내가 연습을 그리기 응용 프로그램 편지 일하고 어떤 생각 @have

   <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

)는 수직 라인과 2)는 아크입니다. 첫 번째 숫자는 첫 번째 파트에 표시되고 사용자가 파트 외부로 이동 한 경우 다시로드 된 뷰보다 먼저로드됩니다. 첫 번째 파트는 두 번째 파트에 표시된 숫자와 그 첫 번째 부분 인 num 1 2 3이 표시되고 사용자가 그 부분을 제거하는 것보다 1 위로 이동한다고 가정합니다. 또한 다시 그리기를 피하십시오. 나는 몇 일 이후에 stucking 어떤 도움을 주셔서 감사합니다 – Khan

+0

질문으로 문의해야합니다 –

+0

내 질문에 http://stackoverflow.com/questions/10731196/alphabet-drawing-practice-in-android – Khan

관련 문제