programing

보기의 배경색 설정 방법

i4 2023. 8. 9. 20:29
반응형

보기의 배경색 설정 방법

보기의 배경색(이 경우 단추)을 설정하려고 합니다.

다음 코드를 사용합니다.

// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

그러면 버튼이 화면에서 사라집니다.내가 무엇을 잘못하고 있으며 보기에서 배경색을 변경하는 올바른 방법은 무엇입니까?

감사해요.

당신은 당신의 단추를 투명하게 만들었습니다.첫 번째 바이트는 알파입니다.

ㅠㅠv.setBackgroundColor(0xFF00FF00);

setBackgoundColor를 호출하면 테두리, 모서리, 패딩 등을 포함하여 기존의 모든 배경 리소스를 덮어쓰거나 제거합니다.기존 백그라운드 리소스의 색을 변경하려는 경우...

View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);

포터 더프로 실험해 보십시오.모드.* 다양한 효과를 제공합니다.

이를 위한 몇 가지 선택...

배경을 녹색으로 설정:

v.setBackgroundColor(0x00FF00);

Alpha를 사용하여 배경을 녹색으로 설정합니다.

v.setBackgroundColor(0xFF00FF00);

색을 사용하여 배경을 녹색으로 설정합니다.녹색 상수:

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));

다음을 사용하여 16진수 색상을 임의의 리소스로 설정할 수 있습니다.

View.setBackgroundColor(Color.parseColor("#e7eecc"));
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

코드가 버튼을 녹색으로 설정하지 않습니다.대신, 버튼을 완전히 보이지 않게 만듭니다.

설명: 색상의 16진수 값이 잘못되었습니다.알파 값이 0이면 색상이 보이지 않습니다.

은 "16진수"입니다.0xFF00FF00완전 불투명 녹색의 경우. 값은합니다.00과 FF 사 든 알 값 투 유 을 성 발 합 니 다 명 은 파 모 이 의 니 다 합 ▁any 유 발 ▁transpa 을 ▁between rency 00 ▁cause

화면에 표시할 첫 번째 색상을 설정하는 경우 이 속성을 관련 보기에 추가하여 관련 layout.xml(더 나은 설계)에서 색상을 설정할 수도 있습니다.

android:background="#FF00FF00"

보기의 배경색을 변경하는 올바른 방법은 무엇입니까?

임의의 View당신이 가지고 있는 것은 맞지만, 당신은 그것을 포기해야 합니다.invalidate()콜.콜.

일부는 만지은, 몇몇하.Views이미 배경이 있습니다. AButton예를 들어, 는 이미 배경(버튼 자체의 면)을 가지고 있습니다.은 이배은입니다.StateListDrawable은 찾수있다니습을에서 수 .android-2.1/data/res/drawable/btn_default.xml설치된 Android SDK에서 확인할 수 있습니다.이는 여러 밀도로 사용할 수 있는 9개 패치의 비트맵 이미지 묶음을 의미합니다.친환경 목표를 달성하려면 이 모든 것을 복제하고 수정해야 합니다.

간단히 말해서, 당신은 다른 UI 패턴을 찾는 것이 당신의 배경을 바꾸는 것보다 더 나을 것입니다.Button.

추가 시도:

setBackgroundColor(Color.parseColor("#FF0000"));

나는 API min 16, target 23에서 사용합니다.

Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);

WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));

이것은 나에게 효과가 있습니다.

v.getBackground().setTint(Color.parseColor("#212121"));

이렇게 하면 배경 자체를 변경하지 않고 배경색만 변경할 수 있습니다.이 기능은 예를 들어 모서리가 둥근 배경이 있는 경우에 유용합니다.

mButton.setBackgroundColor(getResources().getColor(R.color.myColor));

간단하게 사용할 수 있습니다.

view.setBackgroundColor(Color.parseColor("#FFFFFF"));

간단하게 사용할 수 있습니다.

view.setBackgroundColor(Color.rgb(0, 198, 255));

질문에서는 보기의 배경색 변경에 대해 설명합니다.답변 중 하나에서 사용자는 런타임 중에 배경색을 변경하는 방법을 설명합니다.화면에서 다른 개체를 수정하는 방법을 알아보겠지만, 적어도 버튼 클릭 시 보기의 배경색을 수정할 수 있게 함으로써 시작이 좋습니다.

Android 6에서 설명 ContextCompact 사용

        view.setBackgroundColor( ContextCompat.getColor(this, R.color.your_color));

코틀린에서는 다음과 같이 할 수 있습니다.

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)
view.setBackgroundColor(R.color.primaryColor);

이전 색상 값에 색상을 추가하여 색상이 다릅니다.

저에게 맞는 것은 다음과 같습니다.

view.setBackgroundResource(R.color.primaryColor);

기본 색상이 있다고 가정해 보겠습니다.values=>colors.xml다음과 같이:

<resources>
    <color name="primary">#FDD835</color>
</resources>

그래서 만약 우리가 우리의 커스텀 컬러를 사용하고 싶다면.setBackgroundColor(@ColorInt int Color)그런 다음 다음 다음과 같이 사용할 생성자/프로그래밍이 포함된 주석이 필요합니다.

    @SuppressLint("ResourceAsColor")
    public _LinearLayout(Context context) {
        super(context);

        // Formatting our layout : )
        super.setBackgroundColor(R.color.primary);

        ....


    }

합격해야 합니다.int의론 중에

첫 번째 예:

view.setBackgroundColor(-500136)

두 번째 예:

int colorId = R.color.green;

view.setBackgroundResource(colorId);

이것은 잘 작동할 것입니다.v.setBackgroundColor(0xFF00FF00);

저는 위의 모든 방법을 시도했습니다.하지만 저는 제가 필요로 하는 것을 이루지 못했습니다.여기 제 시도가 있습니다.색상에 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)

보기에서 setBackgroundColor를 호출할 때 알파 값을 0이 아닌 값(예: 0xFF)으로 설정해야 합니다. 그렇지 않으면 색상이 표시되지 않습니다.

TextView tv = (TextView)findViewById(R.id.myTextview);
int rgb = 0xF05922; // Orange
tv.setBackgroundColor(0xFF000000|rgb); // Use bitwise OR to add alpha to RGB value

언급URL : https://stackoverflow.com/questions/2173936/how-to-set-background-color-of-a-view

반응형