programing

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

minimums 2023. 8. 21. 21:00
반응형

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

는 안드로이드 UI 디자인의 슬라이드 세트에서 활동 디자인을 복제하려고 합니다.하지만 저는 매우 간단한 작업에 문제가 있습니다.

이미지와 같이 레이아웃을 작성하였으며, 헤더는TextView순식간에RelativeLayout이제 배경 색상을 변경하고 싶습니다.RelativeLayout하지만 방법을 알 수가 없어요.

설정할 수 있습니다.android:background의 재산.RelativeLayoutXML 파일에 태그가 있습니다. 그런데 무엇으로 설정해야 합니까?여러 장소에서 사용할 수 있는 새로운 색상을 정의하고 싶습니다.그것은drawable또는string?

또한 Eclipse Android UI 디자이너 내에서 매우 간단한 방법이 있을 것으로 예상합니다. 제가 누락된 것이 틀림없습니까?

클릭 몇 번으로 진행해야 하는 활동이라 지금은 조금 답답합니다.그래서 어떤 도움이든 매우 감사합니다 :)

Android activity design

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

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

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

그리기 가능한 리소스를 배경으로 사용할 수도 있습니다.android:background="@drawable/mydrawable"이 경우(즉, 9개의 일반 비트맵, 형상 그리기 가능한 등).

위의 답변은 좋습니다.원하는 경우 프로그래밍 방식으로 이와 같은 방식으로 이동할 수도 있습니다.

먼저 레이아웃에 ID가 있어야 합니다.다음을 작성하여 추가합니다.+idres/sys/*.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에는 다음과 같이 몇 가지 미리 설정된 색상이 있습니다.

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

15가지 색상 중에서 선택할 수 있으며, 빠른 테스트를 위해 적합하며 추가 파일을 설정할 필요가 없습니다.

values/colors.xml 파일을 설정하고 위에서 설명한 것처럼 직선 16진수를 사용해도 작동합니다.

네 가지 가능한 방법 중 하나를 사용합니다.

코틀린

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

데이터 바인딩

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

또는 더 유용한 진술-

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

XML

<LinearLayout
    android:background="#FFFFFF"

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

자바

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

Android 스튜디오 2.1.2(또는 이전 버전)에서는 컬러 휠에서 다음을 선택할 수 있습니다.

Color Wheel in Android Studio

레이아웃에 다음을 추가하여 이 기능을 사용할 수 있었습니다.

android:background="#FFFFFF"

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

코틀린

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

또는

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

-

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

무엇보다도 답은 정적입니다.저는 제가 역동적인 대답을 할 것이라고 생각했습니다.해야 할 두인 파일입니다.foo.xml 및 이아웃및레와 activity_bar.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

반응형