비슷한 기능을 가지고 있지만 드로어와 레이아웃이 다른 두 개의 Android 애플리케이션이 있습니다.Android 라이브러리 프로젝트에 정의 된 drawable을 재정의하는 방법은 무엇입니까?
저는 모든 코드와 리소스를 라이브러리 프로젝트에 넣고 해당 라이브러리를 참조 할 수있는 두 응용 프로그램의 드로어 블 및 레이아웃 중 일부를 재정의하고 싶습니다.
라이브러리를 참조하는 응용 프로그램을 만들었습니다. 라이브러리의 모든 리소스를 응용 프로그램에 복사하고 드로어 블 중 일부를 변경했습니다. 또한 문자열 리소스 중 일부를 변경했습니다. Eclipse의 레이아웃 편집기에서 변경된 레이아웃 중 하나를 볼 때 올바른 오버라이드 된 이미지를 볼 수 있습니다.
응용 프로그램을 시작할 때 응용 프로그램에서 변경된 문자열 리소스가 올바르게 표시되지만 라이브러리 문자열은 응용 프로그램의 리소스로 대체되지만 내 ImageView
의 드로어 블은 모두 리소스에서 가져온 것입니다. 도서관의
일부 레이아웃 리소스 (일부 이미지의 이동 및 크기 조정)가 변경되었습니다. 변경된 레이아웃 (소스 코드가 라이브러리에있는 활동)을 사용하는 활동을 시작하면 이전 (라이브러리) 드로어 블이있는 새로운 (애플리케이션) 레이아웃이 표시됩니다. 레이아웃 XML의
:
ImageView view = (ImageView)findViewById(R.id.viewId); view.setImageResource(R.drawable.image_id);
android:src="@drawable/image_id"
나는 두 가지 방법으로
ImageView
의의 드로어 블을 정의하는 시도 두 경우 모두 내가 보는 이미지는 리소스에서 가져옵니다. 응용 프로그램이 아니라 도서관 프로젝트의
이 문제를 해결할 수 없으면 두 응용 프로그램에서 모든 코드를 복제해야합니다. 이는 수치 스럽습니다.
내가 잘못 했나요?
귀하의 질문에 투표 한 결과, 특히 귀하의 답변을 통해 매우 유용하게 보였습니다. drawable을 오버라이드하는 것은 메소드를 오버라이드하는 것만큼이나 중요한 접근법이며, 훨씬 쉽고 간결하게 만듭니다. 과도한 매개 변수와 코딩이 필요 없습니다. – Stan