뷰 (이 경우 버튼)의 배경색을 설정하려고합니다.
이 코드를 사용합니다 :
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
화면에서 버튼이 사라집니다. 내가 뭘 잘못하고 있으며 모든보기에서 배경색을 변경하는 올바른 방법은 무엇입니까?
감사.
뷰 (이 경우 버튼)의 배경색을 설정하려고합니다.
이 코드를 사용합니다 :
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
화면에서 버튼이 사라집니다. 내가 뭘 잘못하고 있으며 모든보기에서 배경색을 변경하는 올바른 방법은 무엇입니까?
감사.
답변:
버튼을 투명하게 만들었습니다. 첫 번째 바이트는 알파입니다.
시험 v.setBackgroundColor(0xFF00FF00);
0xff00ff00
, 정확하게 그것도 있다는 이점이있다를 제외하고 무엇을하는 것은,이 질문에 대해 제안 것 같은 같은 사람이 읽을 수를 . 대부분의 개발자는 사람이 읽을 수있는 솔루션을 선호합니다.
setBackgoundColor를 호출하면 테두리, 모서리, 패딩 등을 포함하여 기존 배경 리소스를 덮어 쓰거나 제거합니다. 기존 배경 리소스의 색상을 변경하면됩니다.
View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);
다른 효과를 위해 PorterDuff.Mode. *로 실험하십시오.
이를위한 몇 가지 선택 ...
배경을 녹색으로 설정하십시오.
v.setBackgroundColor(0x00FF00);
알파 를 사용하여 배경을 녹색으로 설정하십시오 .
v.setBackgroundColor(0xFF00FF00);
Color.GREEN 상수를 사용하여 배경을 녹색으로 설정하십시오.
v.setBackgroundColor(Color.GREEN);
Colors.xml 에서 배경을 녹색으로 정의
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="myGreen">#00FF00</color>
<color name="myGreenWithAlpha">#FF00FF00</color>
</resources>
그리고 사용 :
v.setBackgroundResource(R.color.myGreen);
과:
v.setBackgroundResource(R.color.myGreenWithAlpha);
또는 더 긴 바람 :
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));
과:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
getResources().getColor(...)
사용되지 가지고 stackoverflow.com/questions/31842983/...을
v.setBackgroundResource(R.color.myGreen);
사용시colors.xml
v.setBackgroundColor(0x00FF00);
그들이 작동하지 않는다고 말하는 코드 일뿐입니다. 또한 투명 할 것으로 기대합니다.
뷰에서 배경색을 변경하는 올바른 방법은 무엇입니까?
에 어떤 View
? 당신이 가지고있는 것은 맞지만 invalidate()
전화를 끊어야합니다 .
그러나 일부에는 Views
이미 배경이 있습니다. Button
예를 들어 A 는 이미 버튼 자체의 배경 인 배경을 가지고 있습니다. 이 배경은 Android SDK 설치에서 StateListDrawable
찾을 수 있습니다 android-2.1/data/res/drawable/btn_default.xml
. 이는 여러 밀도로 사용 가능한 9 패치 비트 맵 이미지를 의미합니다. 친환경 목표를 달성하려면 모든 것을 복제하고 수정해야합니다.
요컨대,의 배경을 변경하지 않고 다른 UI 패턴을 찾는 것이 더 좋습니다 Button
.
API min 16, 대상 23에서 사용합니다.
Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);
WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
당신은 간단하게 사용할 수 있습니다 :
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
mButton.setBackgroundColor(getResources().getColor(R.color.myColor));
이 질문 에서는보기의 배경색을 변경하는 방법에 대해 설명합니다. 답변 중 하나에서 사람은 런타임 중에 배경색을 변경하는 방법을 설명합니다. 분명히 화면에서 다른 객체를 수정하는 방법을 살펴볼 것입니다. 그러나 이것은 최소한 버튼 클릭시보기의 배경색을 수정할 수있게함으로써 좋은 시작이 될 것입니다.
당신은 간단하게 사용할 수 있습니다 :
view.setBackgroundColor(Color.rgb(0, 198, 255));
kotlin 에서는 다음과 같이 할 수 있습니다.
val backgroundColor = R.color.whatever_color_you_like
view.setBackgroundColor(getColorCompat(backgroundColor))
getColorCompat()
확장 기능은 어디에 있습니까?
/**
* Extension method to provide simpler access to {@link ContextCompat#getColor(int)}.
*/
fun Context.getColorCompat(color: Int) = ContextCompat.getColor(this, color)
다음 과 같이 기본 색상 이 있다고 가정합니다 values=>colors.xml
.
<resources>
<color name="primary">#FDD835</color>
</resources>
따라서 사용자 정의 색상을 사용하려면 생성자 / 메소드 setBackgroundColor(@ColorInt int Color)
가있는 주석 @SuppressLint("ResourceAsColor")
이 필요합니다 .
@SuppressLint("ResourceAsColor")
public _LinearLayout(Context context) {
super(context);
// Formatting our layout : )
super.setBackgroundColor(R.color.primary);
....
}
위의 모든 방법을 시도했습니다. 그러나 나는 필요한 것을 달성하지 못했습니다. 여기 내 시도가 있습니다. 색상에 16 진 코드를 사용하고 색상을 이미지의 배경으로 설정하려는 경우 이것이 코 틀린 코드입니다.
val bitmap = Bitmap.createBitmap(30, 30, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
val colorCode = "#ffffff"
canvas.drawColor(Color.parseColor(colorCode))
mImageViewLogo.setImageBitmap(bitmap)