2014-11-03 4 views
0

투명 오버레이를 만들기 위해 지배적 인 배경색을 추출 할 수있는 Android 용 API가있어 텍스트 위에 글을 쓸 수 있습니다.배경색을 추출하기위한 머티리얼 디자인 API

예를 들어 4 개의 이미지의 지배적 인 색이 갈색 인 경우 오버레이는 투명 한 갈색입니다.

다음 사진과 같은 것을 만들어 사진 위에 정보를 추가하려고합니다. Google Play 뮤직에서 가져 왔습니다.

google play music

+1

새로운 [Palette API] (https://developer.android.com/reference/android/support/v7/graphics/Palette.html) 및 [there] (https://developer.android .com/training/material/drawables.html # ColorExtract)이 API의 요약입니다. –

+0

감사합니다. 그게 정확히 내가 뭘 찾고 있었는지 :) – wheeliez

+0

당신이 당신의 PB를 해결하기 위해 그것을 사용할 수있는 간단한 예제입니다 답변을 만듭니다;) –

답변

1

해결책이있을 수 있습니다 :

Bitmap bitmap = view.getDrawingCache(); 
: 나는 당신이

RelativeLayout view = (RelativeLayout) findViewById(R.id.parentLyt); 
view.setDrawingCacheEnabled(true); 
view.buildDrawingCache(); 

는 이제 4 개 이미지의 비트 맵을 얻을 수 RelativeLayout의 (라고 parentLyt) 4 이미지 뷰를 넣어 가정

그리고이 비트 맵 위에 Palette API를 사용하십시오 :

Palette colorPalette = Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { 
    public void onGenerated(Palette palette) { 
     int color = palette.getLightVibrantSwatch().getRgb(); 
     // Do something with colors...just for example : 
     // Convert to hex format and add 88 alpha channel "#88RRGGBB" 
     String transparentColor = String.format("#88%06X", 0xFFFFFF & intColor); 
     // Convert back to Color object aka int 
     int finalColor = Color.parseColor(transparentColor); 
    } 
}); 
0

당신은 투명성을 달성하기 위해 알파를 사용할 수 있습니다 감사합니다. 따라서 색상을 정의 할 때는 일반적으로 #RRGGBB (빨강 녹색 파랑)을 사용하지만 #AARRGGBB를 사용하여 알파를 지정할 수도 있습니다.
#00RRGGBB은 완전히 투명하고 #80RRGGBB은 반투명과 같습니다. 그런 색상을 선택하여 배경으로 사용할 수 있습니다.

+0

나는 알파 transparancy에 대해 알고 있지만 지배적 인 색상을 구하기 위해 함수에 대해 물어보고 있었는데 배경을 형성하는 이미지의 그런 다음 해당 색상을 이미지의 반투명 전경으로 사용하십시오. 죄송합니다 질문이 명확하지 않은 경우, 그것을 업데이트했습니다. – wheeliez

+0

'dominant'가 차이를 만듭니다. – helleye

관련 문제