Programing

Android 레이아웃 요소의 배경색 설정

lottogame 2020. 5. 15. 07:57
반응형

Android 레이아웃 요소의 배경색 설정


Android UI 디자인의 슬라이드 세트에서 활동 디자인을 다소 복제하려고합니다 . 그러나 나는 매우 간단한 작업에 문제가 있습니다.

이미지와 같이 레이아웃을 만들었으며 헤더는 TextView에 있습니다 RelativeLayout. 이제의 배경색을 변경하고 싶지만 RelativeLayout방법을 알 수 없습니다.

XML 파일 android:backgroundRelativeLayout태그에서 속성을 설정할 수 있다는 것을 알고 있지만 무엇으로 설정해야합니까? 여러 곳에서 사용할 수있는 새로운 색상을 정의하고 싶습니다. 그것은인가 drawable또는은 string?

또한 Eclipse Android UI 디자이너에서 누락되어야하는 매우 간단한 방법이있을 것으로 기대합니까?

현재 몇 번의 클릭만으로 수행되는 활동이므로 약간 실망했습니다. 어떤 도움이라도 대단히 감사합니다. :)

안드로이드 활동 디자인


일반적으로 inside로 지정된 간단한 색상 리소스를 사용할 수 있습니다 res/values/colors.xml.

<color name="red">#ffff0000</color>

를 통해 이것을 사용하십시오 android:background="@color/red". 이 색상은 텍스트 색상과 같은 다른 곳에서도 사용할 수 있습니다. 동일한 방식으로 XML로 참조하거나을 통해 코드로 가져 오십시오 getResources().getColor(R.color.red).

드로어 블 리소스 를 배경으로 사용할 수도 있습니다. android:background="@drawable/mydrawable"9patch 드로어 블, 일반 비트 맵, 모양 드로어 블 등을 의미합니다.


위의 답변은 훌륭합니다. 원한다면 프로그래밍 방식으로 갈 수도 있습니다.

먼저 레이아웃에 ID가 있어야합니다. +idres / layout / *. xml에 다음 을 작성하여 추가하십시오 .

<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>

그런 다음 Java 코드에서 다음을 변경하십시오.

RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);

이와는 별도로 colors.xml에 색상이 정의되어 있으면 프로그래밍 방식으로 수행 할 수도 있습니다.

rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));

색상에 대해 android:background="#DC143C"또는 다른 RGB 값을 사용할 수 있습니다 . 여기에 언급 된 대로이 방법을 사용하는 데 아무런 문제가 없습니다.


그만큼

res/values/colors.xml.

<color name="red">#ffff0000</color>
android:background="@color/red"

예는 나를 위해 작동하지 않았지만

android:background="#(hexidecimal here without these parenthesis)"

상대 레이아웃 요소에서 속성으로 나를 위해 일했습니다.


색상을 빠르게 변경하고 싶을 때 (16 진수 숫자를 암기하지 않은 경우) 안드로이드에는 다음과 같이 몇 가지 사전 설정 색상이 있습니다.

android:background="@android:color/black"

선택할 수있는 15 가지 색상이 있으며 빠르게 테스트하기에 적합하며 추가 파일을 설정할 필요가 없습니다.

values ​​/ colors.xml 파일을 설정하고 위에서 설명한대로 16 진을 사용하면 여전히 작동합니다.


Android Studio 2.1.2 (또는 이전 버전)에서는 색상환에서 선택할 수 있습니다.

Color Wheel in Android Studio

내 레이아웃에 다음을 추가하여 이것을 얻었습니다.

android:background="#FFFFFF"

그런 다음 FFFFFF 색상을 클릭하고 나타난 전구를 클릭했습니다.


코 틀린

linearLayout.setBackgroundColor(Color.rgb(0xf4,0x43,0x36))

또는

<color name="newColor">#f44336</color>

-

linearLayout.setBackgroundColor(ContextCompat.getColor(vista.context, R.color.newColor))

가능한 4 가지 방법을 사용하십시오.

1. 코 틀린

val ll = findViewById<LinearLayout>(R.id.your_layout_id)
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white))

2. 데이터 바인딩

<LinearLayout
    android:background="@{@color/white}"

또는 더 유용한 진술

<LinearLayout
    android:background="@{model.colorResId}"

3. XML

<LinearLayout
    android:background="#FFFFFF"

<LinearLayout
    android:background="@color/white"

4. 자바

LinearLayout ll = (LinearLayout) findViewById(R.id.your_layout_id);
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white));

무엇보다 정적 인 답변입니다. 나는 역동적 인 답변을 줄 것이라고 생각했습니다. 동기화해야 할 두 파일 foo.xml은 레이아웃에 상대적 이며 이것 activity_bar.java에 해당하는 Java 클래스에 해당합니다 R.layout.foo.

에서는 foo.xml전체 레이아웃 ID를 설정합니다

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/foo" .../>

그리고 activity_bar.java색상 설정하십시오 onCreate():

public class activity_bar extends AppCompatActivty {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foo);

            //Set an id to the layout
        RelativeLayout currentLayout = 
                    (RelativeLayout) findViewById(R.id.foo);

        currentLayout.setBackgroundColor(Color.RED);
        ...
    }
    ...
}

이게 도움이 되길 바란다.

참고 URL : https://stackoverflow.com/questions/7378636/setting-background-colour-of-android-layout-element

반응형