2012-03-22 1 views
0

빛나다 화재의 토스트의 기본 색상은 흰색 배경에 검은 색 텍스트입니다. this answer의 지침에 따라 텍스트 색상을 흰색과 배경색을 검정색으로 설정하려고했지만이 변경 후에도 배경 뒤에 흰색이 표시되므로 흰색 배경에 검정색 바탕에 흰색 텍스트가 나타납니다. 전체 배경을 검정색으로 설정해야하는 다른 분야가 있습니까?빛나다 화재에 대한 토스트 알림을 검정색 바탕에 흰색 텍스트로 바꿀 수 있습니까?

Context context = ctx.getApplicationContext(); 
    CharSequence text = "Toasty text..."; 
    int duration = Toast.LENGTH_SHORT; 

    Toast toast = Toast.makeText(context, text, duration); 
    TextView v = (TextView) toast.getView().findViewById(android.R.id.message); 
    v.setTextColor(Color.WHITE); 
    v.setBackgroundColor(Color.BLACK); 
    toast.show(); 

편집 : 여기 내 코드의 나는 색상을 기본 토스트를 생성하고 설정하는 CommonsWare의 대답과 this link의 조합을하고 끝났다.

답변

2

static makeText() 메서드를 사용하는 대신 Toast에 대한 사용자 지정 레이아웃을 사용하여 일반 생성자를 사용하고 setView()을 사용할 수 있습니다.

1

CommonsWare는 토스트 스타일을 완벽하게 제어합니다. 당신이 향하고있는 길을 계속하고자한다면, 시도 :

toast.getView().setBackgroundDrawable(R.drawable.toast); 

당신은 텍스트 뷰가에 배경 당김 세트를 가지고있는 LinearLayout 내부에 있음을 알 수있다. 내부에있는 TextView가 아니라 LinearLayout의 배경을 변경해야합니다.

당김 자원 (드로어 블/사진 toast.xml), 이런 식으로 뭔가를 들어

:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <gradient android:startColor="#000000" android:centerColor="#202020" android:endColor="#000000" android:angle="90" /> 
    <stroke android:width="1dp" android:color="#808080" /> 
    <corners android:radius="8dp" /> 
</shape> 

하지만 당신은 CommonsWare 당 사용자 지정 레이아웃을하고 떨어져 정말 더 좋을 것 같아 ...

관련 문제