Android 레이아웃 요소의 배경색 설정
저는 안드로이드 UI 디자인의 슬라이드 세트에서 활동 디자인을 복제하려고 합니다.하지만 저는 매우 간단한 작업에 문제가 있습니다.
이미지와 같이 레이아웃을 작성하였으며, 헤더는TextView
순식간에RelativeLayout
이제 배경 색상을 변경하고 싶습니다.RelativeLayout
하지만 방법을 알 수가 없어요.
설정할 수 있습니다.android:background
의 재산.RelativeLayout
XML 파일에 태그가 있습니다. 그런데 무엇으로 설정해야 합니까?여러 장소에서 사용할 수 있는 새로운 색상을 정의하고 싶습니다.그것은drawable
또는string
?
또한 Eclipse Android UI 디자이너 내에서 매우 간단한 방법이 있을 것으로 예상합니다. 제가 누락된 것이 틀림없습니까?
클릭 몇 번으로 진행해야 하는 활동이라 지금은 조금 답답합니다.그래서 어떤 도움이든 매우 감사합니다 :)
일반적으로 내부에 지정된 간단한 색상 리소스를 사용할 수 있습니다.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가 있어야 합니다.다음을 작성하여 추가합니다.+id
res/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(또는 이전 버전)에서는 컬러 휠에서 다음을 선택할 수 있습니다.
레이아웃에 다음을 추가하여 이 기능을 사용할 수 있었습니다.
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
'programing' 카테고리의 다른 글
Sequetize.js에서 생성한 SQL을 보려면 어떻게 해야 합니까? (0) | 2023.08.21 |
---|---|
cgroups와 네임스페이스 간의 차이 (0) | 2023.08.21 |
스위프트 언어에서 대소문자를 무시한 두 문자열을 비교하는 방법은 무엇입니까? (0) | 2023.08.21 |
데몬의 도커 오류 응답: "충돌... 컨테이너에서 이미 사용 중" (0) | 2023.08.21 |
Android에서 탐색 드로어를 여는 스와이프 제스처 사용 안 함 (0) | 2023.08.21 |