2014-05-16 7 views
0

배경 위에 작은 그림/배경색을 사용하고 싶지만 작은 그림/배경의 가장자리에 희미한 가장자리가 있기를 원합니다. 그래서 사각형 모양의 벽돌이 아닙니다.Android에서 페이딩 가장자리로 배경 또는 이미지를 사용하려면 어떻게해야합니까?

여기 내 FrameLayout이에 배경 이미지와 FrameLayout이의 안에 내있는 LinearLayout에 흰색 색상으로 가지고있는 코드 :

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    tools:context="com.example.snake.LevelScoreActivity" 
    tools:ignore="MergeRootFrame" 
    android:background="@drawable/snakebackground"> 

    <TextView 
     android:id="@+id/outputTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:gravity="center" 
     android:layout_gravity="center_horizontal" 
     android:text="Level X Score" 
     android:textSize="14dp"/> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:gravity="center_horizontal" 
     android:background="#ffffff"> 

    <TextView 
     android:id="@+id/output" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:gravity="center" 
     android:text="Username" /> 

    <TextView 
     android:id="@+id/output2" 
     android:layout_width="40dp" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:gravity="center" 
     android:text="Score" /> 

    <TextView 
     android:id="@+id/output3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:gravity="center" 
     android:text="Timestamp" /> 

    </LinearLayout> 

     <TextView 
     android:id="@+id/outputNoScore" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:gravity="center" 
     android:layout_gravity="center" 
     android:text="" 
     android:textSize="14dp"/> 

</FrameLayout> 

나는이 어떻게 할 수

?

당신 대신 당신의 안드로이드 응용 프로그램에서 그 일의, 이미지 편집기 소프트웨어에서 직접 이미지를 퇴색한다 대신 페이드 ​​폭이 변수에 따라 달라집니다
+0

내 첫 번째 본능은 투명 용지가있는 사용자 정의'GradientDrawable'입니다. 그러나 그것이'GradientDrawable'으로 가능한지 확신 할 수 없습니다. –

+0

간단한 사용자 정의 BitmapDrawable이 트릭을 수행합니다 – pskink

답변

0

...

+0

다시 설명해 주시겠습니까? 나는 꽤 이해하지 못한다. – Vanquiza

+0

배경 이미지의 가장자리가 희미 해지기를 원한다면, 안드로이드에서 코드를 사용하는 대신 원시 이미지에서 직접 한 번 페이드 아웃하면 어떨까요? 내 영어로 미안해. 나는 당신이 내 뜻을 이해하기를 바랍니다. – bobby4078

0

이 사용자 정의를 시도 BitmapDrawable :

class BD extends BitmapDrawable { 
    private Paint mPaint; 
    private Paint mSrcInPaint; 
    private int mRadius; 
    private Rect mDrawRect; 

    public BD(Resources res, Bitmap b, int radius) { 
     super(res, b); 
     mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
     mPaint.setMaskFilter(new BlurMaskFilter(radius, Blur.NORMAL)); 

     mSrcInPaint = new Paint(); 
     mSrcInPaint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     mRadius = radius; 
     mDrawRect = new Rect(); 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     int cnt = canvas.saveLayer(null, null, Canvas.HAS_ALPHA_LAYER_SAVE_FLAG); 
     mDrawRect.set(getBounds()); 
     mDrawRect.inset(mRadius, mRadius); 
     canvas.drawRect(mDrawRect, mPaint); 

     canvas.saveLayer(null, mSrcInPaint, Canvas.HAS_ALPHA_LAYER_SAVE_FLAG); 
     super.draw(canvas); 
     canvas.restoreToCount(cnt); 
    } 
} 
+0

이 클래스를 사용하여 선형 레이아웃의 배경을 어떻게 설정합니까? 내가 완전히 이해하지 못해서 미안하지만 나는 안드로이드에 아주 익숙하다. – Vanquiza

+0

setBackgroundDrawable – pskink

+0

나는 물건의 배경을 설정하라는 명령을 알고 있는데, 내 의도는 무엇입니까? 보통 당신은 예를 들어'setBackgroundDrawable (R.drawable.blabl.png)'과 같이 그림을 붙였습니다. 그러나이 방법을 어떻게 사용하고 "변환 된 그림 "을 설정할 수 있습니다. – Vanquiza