1 년 동안 이것을 알아 내려고 노력했습니다. 오래 전에 임시 해결 방법을 얻었지만 개발 한 앱에 새로운 기능을 추가 할 준비를 할 때 문제가 다시 발생했습니다.Android 앱에서 배경색을 동적으로 설정하는 방법은 무엇입니까?
주요 목표 : 사용자가 앱의 배경색으로 사용할 색상을 사실상 선택할 수있게하십시오.
현재 반복 : 나는 2 개의 드로어 블 이미지, 즉 하나의 녹색, 하나의 파란색을 가지고 있습니다. 사용자는이 사이를 전환 할 수 있지만 순위 :
if (bgColor) {
getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.custom_blue_background_simple));
}
else {
getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.custom_green_background));
}
}
bgColor가 사용자가 파란색으로, 기본 녹색에서 배경을 변경 한 경우 부울입니다.
는 지금은 컬러로 전환하기 위해 노력하고 있음을, 그리고 드로어 블, 나는 시도했다 :
LayoutInflater layInflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layInflate.inflate(R.layout.main_activity_layout, null);
mainLayout = (RelativeLayout) view.findViewById(R.id.mainActivityRelativeLayoutId);
mainLayout.setBackgroundResource(R.color.colorRed);
을하지만 아무것도하지 않습니다!
그럼 드로어 블 이미지와 같이 작동 시키려고하지만 컬러 (유형 int)는 드로어 블 유형이 아닙니다! 따라서이 코드는 작동하지 않습니다.
딜레마와 질문 : 색상 선택기 설정/환경 설정이 있습니다. 사용자는 거의 모든 색상을 선택할 수 있으며 int 유형의 색상으로 저장합니다. 성공적 텍스트 색상에 사용할 수 :
textView.setTextColor(colorPickerColor);
colorPickerColor은 색상 선택기 환경에서 검색 int 형의 변수가
하지만, 레이아웃이나 뷰의 배경을 변경하는 것을 사용하려고 할 때, 그것은 아무것도하지 않는다. 상수/하드 코딩 된 색상을 설정해도 위의 코드와 같이 색상이 변경되지 않습니다. 색상을 사용하여 배경을 변경할 수있는 유일한 방법은 드로어 블 중 하나 (각 날의 선택 가능한 색상, 잠재적으로 수백만 또는 수십억 개의 드로어 블이 있어야하므로 드로잉을 할 수 있음) 또는 색상에 대한 16 진수 코드이지만 코드에 배치하면 아무 것도하지 않으므로 레이아웃의 XML에 하드 코딩됩니다 (사용자가 선택할 수 없기 때문에 전혀 유용하지 않습니다).
코드를 통해 프로그래밍 방식으로/동적으로 int 유형의 색상을 지정하여 레이아웃의 배경색을 변경하는 적절한 방법은 무엇입니까? 내 응용 프로그램이 지원하는 최소 API는 14
참고 : 검색했지만 모든 결과가 관련이 없거나 작동하지 않았습니다.
'view.setBackgroundColor (int color)'시도해 보셨습니까? 예제 사용법 :'mainLayout.setBackgroundColor (0xFF000000);' – Isaac
@Isaac이 맞습니다. FF가 완전히 불투명하다는 것을 기억하십시오. –
@isaac 이것은 아무것도하지 않습니다. 이미 내가 한 일이 아닌가? –