1.Snackbar
Toast와 비슷하지만 View를 기준으로 message를 보여줌
Snackbar Color Change
기본 배경 색 변경
snackbar.getView().setBackgroundColor(colorId);
용도 별로 다른 색을 사용하는 방법
사용 방법
Snackbar snackbar = Snackbar.make(getView(), R.string.hello_snackbar, Snackbar.LENGTH_SHORT); ColoredSnackBar.alert(snackbar).show(); |
Class
public class ColoredSnackbar { private static final int red = 0xfff44336 ; private static final int green = 0xff4caf50 ; private static final int blue = 0xff2195f3 ; private static final int orange = 0xffffc107 ; private static View getSnackBarLayout(Snackbar snackbar) { if (snackbar != null ) { return snackbar.getView(); } return null ; } private static Snackbar colorSnackBar(Snackbar snackbar, int colorId) { View snackBarView = getSnackBarLayout(snackbar); if (snackBarView != null ) { snackBarView.setBackgroundColor(colorId); } return snackbar; } public static Snackbar info(Snackbar snackbar) { return colorSnackBar(snackbar, blue); } public static Snackbar warning(Snackbar snackbar) { return colorSnackBar(snackbar, orange); } public static Snackbar alert(Snackbar snackbar) { return colorSnackBar(snackbar, red); } public static Snackbar confirm(Snackbar snackbar) { return colorSnackBar(snackbar, green); } } |
2. SpannableString
글자 별로 색을 다르게 주는 방법 TextView, Toast 등의 View에서 글자색을 다르게 사용 할 수 있다.
SpannablerString Example
public void showToast(){ SpannableString span=new SpannableString("This is a Colorful Spannable text!"); span.setSpan(new ForegroundColorSpan(Color.CYAN), 10, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.GRAY), 11, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.GREEN), 12, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.MAGENTA), 13, 14, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.RED), 14, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.LTGRAY), 15, 16, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.BLUE), 16, 17, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ForegroundColorSpan(Color.YELLOW), 17, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); Toast.makeText(this,span, Toast.LENGTH_LONG).show(); }
http://stackoverflow.com/questions/20442061/customize-toast-message-text-color
3.TextInputLayout
TextView의 힌트가 상단에 보이도록 하는 view
SpannablerString Example
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_parameter_key"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<EditText
android:id="@+id/parameter_key"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/parameter_key"/>
</android.support.design.widget.TextInputLayout>