1
프로그래밍 방식으로을 렌더링하면 가장자리가 희미 해져 TextView
으로 렌더링됩니다. 어떤 모드에서 진정한 알파 그라디언트를 만들 수 있습니까?가장자리 페이딩에 해당하는 PorterDuff.Mode
실제 에지 페이딩은 1.0
에서 0.0
까지 투명도를 (오버레이 그래디언트 해킹 없음) 부드럽게 줄여야하므로 상단보기가 배경보기로 희미 해집니다.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int y = 0;
int height = 300;
int width = getWidth();
LinearGradient shader = new LinearGradient(width/2, y, width/2, y + height, 0xff000000, 0x0000000, Shader.TileMode.CLAMP);
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.XXX)); // Which mode works?
p.setShader(shader);
canvas.drawRect(0, y, width, y + height, p);
}
나는 모든 조합을 시도했지만 그 중 아무 것도 작동하지 않습니까? 그렇게하는 것이 불가능합니까?
당신이 정기적으로'TextView'을 무효화 적이 (활동 배경 레드입니다)? –
@ ZhenghongWang, 문제는 내가 원하는 가장자리 페이딩 결과를 얻을 수 없다는 것입니다. 나는'PorterDuff.Mode' 옵션을 모두 시험해 보았고 투명한 그라디언트 만 검은 색으로 그립니다. 레이아웃의'requireFadingEdge' 속성처럼 텍스트의 불투명도가 0으로 떨어지길 원합니다. –
'PorterDuff'는 안드로이드의 공식 데모에서 두 개의 이미지를 겹치는 데 사용됩니다. 나는'애니메이션 '이 당신을 위해 이것을 할 수 있다고 생각합니다. –