현재 게임을 개발 중입니다. 나는 모든 객체의 측정 값으로 DP를 사용 중이며 메트릭을 통해 PX로 다시 계산됩니다. 문제는 예를 들어 Nexus 7 태블릿에서 모든 요소가 잘 보이고 크기가 완벽하지만 Nexus 4에서 너무 크다는 것입니다. 이는 분명 DP 때문입니다.개체 /보기가 화면의 특정 부분을 차지하게하는 방법은 무엇입니까?
목적은 항상 화면의 폭의 1/5 인 :
어떻게 이런 일을 달성 할 수 있습니까?
프로그래밍 방식으로 새 너비를 계산해야합니까? 그렇다면 어떻게해야합니까? 나는 디스플레이의 밀도와 해상도를 염두에 두어야 할 것입니다. 그러나 지금 어떻게 계산할 수 있을지 상상할 수 없습니다. 아니면 이것을 가능하게하는 다른 방법이 있습니까?
BTW : 저는 Canvas에서 그림을 그리기 때문에 모든 것을 픽셀로 다시 계산해야합니다.
이
내가 현재 무엇을 사용 :public int convertDpToPx(int dp) {
DisplayMetrics displayMetrics = mActivity.getResources().getDisplayMetrics();
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, displayMetrics);
}
public int convertPxToDp(int px) {
DisplayMetrics displayMetrics = mActivity.getResources().getDisplayMetrics();
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px , displayMetrics);
}
그리고 개체 # 1은 예를 들어 100dp의 폭을 가지고 있지만 내 7에 대한보다 내 4.7 인치 장치에 화면의 더 큰 참여한다 인치 태블릿.
글쎄, 나는 화면의 밀도와 그 모든 것들을 염두에 두어야한다고 생각했지만, 네가 옳다는 생각이 들었다. 고마워요 – damian
그래, 그로 쉽게 :) 또한 dimen.xml에서 픽셀 단위를 지정할 수 있습니다 여기에 내 대답을 확인하고 도움이 될 수 있는지 확인하십시오. http://stackoverflow.com/questions/18027054/use-density-independent-pixels-for-width-and-height-when-creating-a-bitmap/18028587#18028587 해피 코딩! – MattMatt