2014-05-15 3 views
0

나는 android 드로어 블만을 사용하여 다음과 같은 디자인을 만들려고합니다.Android에서 그라데이션이있는 평행선 이미지를 만들려면 어떻게해야합니까?

enter image description here

은 내가 라인의 생성은 다음 어떤 종류의 그라디언트 레이어를 중첩 루프 수있을 것이라고 상상한다.

어떻게 이런 종류의 드로잉을 효율적으로 수행 할 수 있습니까?

+0

내가 어디서부터 시작 정확하게 확실하지 않다 당신이 –

+0

을 시도 보여줍니다. – Vidia

답변

1

이 사용자 정의 그리기 시도 :

class D extends Drawable { 
    private Paint mPaint; 

    public D() { 
     mPaint = new Paint(); 
    } 

    @Override 
    protected void onBoundsChange(Rect bounds) { 
     Bitmap lines = BitmapFactory.decodeResource(getResources(), R.drawable.lines); 
     Shader shaderA = new BitmapShader(lines, TileMode.REPEAT, TileMode.REPEAT); 
     Shader shaderB = new LinearGradient(bounds.left, bounds.top, bounds.right, bounds.bottom, Color.BLUE, Color.RED, TileMode.REPEAT); 
     ComposeShader cs = new ComposeShader(shaderA, shaderB, Mode.SRC_IN); 
     mPaint.setShader(cs); 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     canvas.drawPaint(mPaint); 
    } 

    @Override 
    public void setAlpha(int alpha) { 
    } 

    @Override 
    public void setColorFilter(ColorFilter cf) { 
    } 

    @Override 
    public int getOpacity() { 
     return PixelFormat.TRANSLUCENT; 
    } 
} 

경우 다음과 같이 고해상도/드로어 블/사진 lines.png이 : enter image description here

+1

@Vidia가 원했던 것입니까? – pskink

+0

예 그렇게 나타납니다 : – Vidia

+1

가 BTW 당신이 동적 회전을 할 수 있습니다, 같은 효과를 얻기 위해 회전 매트릭스와 함께이 방법을 setLocalMatrix 을 shaderA 수직 라인을 사용하고 호출 할 수 있습니다 – pskink

관련 문제