Android : context.getDrawable ()의 대안
context.getDrawable()
내 프로젝트에서 다음과 같이 사용 했습니다.
Drawable greenProgressbar = context.getDrawable(R.drawable.custom_progressbargreen);
하지만 Eclipse는 Minimum API level of 21
. 이것은 빠른 Google 검색 후에 내 앱이에서만 사용할 수 있음을 의미 Android 5.0
합니다. 모든 기기가이 버전의 Android를 사용하는 것은 아니기 때문에 context.getDrawable()
.
SDK 22 문서에 따르면 이전에 허용 된 메서드는 더 이상 사용되지 않습니다.
android.os.Build.VERSION_CODES # JELLY_BEAN 이전에는 여기에 전달 된 리소스 ID가 다른 Drawable 리소스의 별칭 인 경우이 함수가 최종 구성 밀도를 올바르게 검색하지 못했습니다. 즉, 별칭 리소스의 밀도 구성이 실제 리소스와 다른 경우 반환 된 Drawable의 밀도가 잘못되어 스케일링이 잘못 될 수 있습니다.
이 답변 에서 지적했듯이 더 나은 솔루션은 ContextCompat 을 사용하는 것입니다 .ContextCompat.getDrawable(context, R.drawable.***)
getResources()
컨텍스트 뒤에 추가해보십시오 .
Drawable greenProgressbar = context.getResources().getDrawable(R.drawable.custom_progressbargreen);
작동해야합니다.
나는 전에 비슷한 문제가 있었다. 이렇게 해보 셨나요?
Drawable greenProgressbar = context.getResources().getDrawable(R.drawable.custom_progressbargreen);
지금은 더 이상 사용되지 않는 getDrawable () 메서드를 참조하려는 동일한 상황이 발생했습니다.
내가 사용한 것,
myButton.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.ic_btn_off));
이것이 당신을 도울 수 있기를 바랍니다
ContextCompact.getDrawable (Context context, int resID) 사용에 동의합니다. 그것은 나를 위해 일했고 내 앱은 API 19를 대상으로합니다.
"getDrawable (id, this.getTheme ())"를 사용해야합니다. 이 메서드는 지금까지 사용되지 않습니다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.setBackground(getResources().getDrawable(R.drawable.radioline,this.getTheme()));
} else {
view.setBackground(getResources().getDrawable(R.drawable.radioline));
}
이 시도:
AppCompatResources.getDrawable(context, R.drawable.*)
참고 URL : https://stackoverflow.com/questions/27796246/android-alternative-for-context-getdrawable
'IT TIP' 카테고리의 다른 글
표 내에서 "단어 줄 바꿈 : 구분 단어"사용 (0) | 2020.10.18 |
---|---|
메모장에서 각 줄의 시작과 끝에 따옴표를 추가하세요 ++ (0) | 2020.10.17 |
개체 필드를 기반으로 ArrayList 정렬 (0) | 2020.10.17 |
부트 스트랩 4 반응 형 유틸리티 표시 / 숨김 xs sm lg가 작동하지 않음 (0) | 2020.10.17 |
jQuery / Javascript를 사용하여 모든 형태의 페이지 새로 고침 방지 (0) | 2020.10.17 |