안드로이드 화면

4593 단어 android화면 맞춤
스크린 어댑터는 먼저 다음과 같이 성명합니다. 저는 대학교 4학년 재학생일 뿐이고 실제 개발한 스크린 어댑터 경험이 없습니다. 다음은 모두 개인 학습 소득입니다. 부적절한 점은 지적해 주십시오.
총괄적으로 말하면 어떤 제품은 후기 스크린에 많은 번거로움을 주고 어떤 제품은 매우 가볍다.왜 그랬을까?이것은 네가 평소에 코드를 쓰는 좋은 습관이 있는지의 여부와 관계가 있다.
향후 화면에 적합한 프로그래밍 습관 감소:
4
  • 상대적인 레이아웃과 선형 레이아웃을 많이 사용한다(권중weight)

  • 4
  • dp로 px를 사용하지 않습니다

  • 4
  • sp로 px를 사용하지 않습니다

  • 4
  • 코드에서 동적 사이즈 설정이 필요하면 px를 직접 설정하지 않고 현재 장치의 설비 밀도에 따라 dp를 px로 전환한 후에 설정합니다

  • **그림 맞춤**dpi: 화면 픽셀 밀도는 인치당 픽셀 수를 나타냅니다.화면 픽셀 밀도는 화면 크기 및 해상도와 관련이 있습니다.
    단일 변경 조건에서는 화면 크기가 작고 해상도가 높을수록 픽셀 밀도가 커지고 화면 크기가 작습니다.
    px: 픽셀.해상도는 픽셀 단위로 안드로이드 네이티브 API는 화면폭이 높은 것처럼 px를 통일된 계량 단위로 한다.
    dip 및 dp: 화면 픽셀 밀도.dp 및 px 환산: dp = px/장치 밀도
    sp: 글꼴 크기를 설정하는 단위로 텍스트 크기 기본 설정을 확대합니다.
    안드로이드 프로젝트 디렉터리에는 일반적으로 mdpi,hdpi,xdpi,xxdpi가 있어 안드로이드의drawable 폴더와values 폴더를 수식합니다.
    픽셀 밀도에 따라 그림과 dimen 값을 구분합니다.
    이름 픽셀 밀도 범위
    ldpi는 모바일 장치의 설정이 끊임없이 업그레이드됨에 따라 이 픽셀 밀도 장치는 이미 보기 드물기 때문에 현재 어울릴 때 고려할 필요가 없습니다.
    mdpi        120dpi~160dpi
    hdpi         160dpi~240dpi
    xhdpi        240dpi~320dpi
    xxhdpi      320dpi~480dpi
    xxxhdpi    480dpi~640dpi
    화면 해상도는 가로와 세로의 픽셀 포인트를 가리키며 단위는 px, 1px=1개의 픽셀 포인트이다
    휴대전화 해상도에 따라 비슷한 해상도 자원 파일의 그림을 자동으로 선택해 표시한다.
    그래서 개발할 때 적당한 크기의 그림을 적당한 폴더에 넣고 일반적으로 현재 시장의 주류 휴대전화 주류의 해상도에 따라 그림을 만든다
    ** 레이아웃이 잘 어울립니다 ** (상용하지 않음) 안드로이드 프로젝트 디렉터리에는 일반적으로 하나의layout 디렉터리만 있습니다. 그 안에 놓인 것은 모두 레이아웃 파일입니다. 사실 당신은 더 많은layout 폴더를 새로 만들 수 있습니다. 이름 방식은layout-land,
    layout-xlarge,layout-sw720dp 등.
    그러나 주의해야 할 것은 일반적으로 추가 컨트롤을 추가하지 않는다는 것이다.만약 당신이 단추를 하나 더 넣었다면, 두 가지 다른 해상도에서findViewById는 단추를 찾습니까, 아니면 찾지 않습니까?
    일반적인 용도는 당신의 앱이 어떤 휴대전화의 해상도에 문제가 생기면 이 해상도에 따라 단독으로 레이아웃 파일을 만들어서 해상도에 맞게 할 수 있다는 것이다.
    ** 사이즈가 적당합니다. ** 안드로이드 프로젝트 디렉터리 아래에values 디렉터리가 있는데, 그 안에는dimens라는 xml 파일이 있습니다.그것은 일반적으로 각양각색의 컨트롤 사이즈의 성명이지만, 만약 회사가 일반적으로 요구하지 않는 상황에서 우리는
    레이아웃 파일에 직접 썼어요.하지만 이 xml 파일을 사용할 때 무엇을 하는지 알아야 합니다.
    사실 사이즈가 어울리는 데 가장 중요한 것은 위에서 언급한 dp와 px의 전환을 아는 것이다.
    dp = px/디바이스 밀도
    일반적인 장치 해상도 및 장치 밀도
    320x480        1.0
    480x800        1.5
    240x320        0.75
    1280x7202 우리가 흔히 볼 수 있는 문제 중 하나는 바로 당신이 제품을 만들었다는 것입니다. 현재 시장의 주류 모델과 주류 해상도에 있어서 구조, 사이즈는 모두 정상적인 것이지만 특히 큰 해상도를 가진 휴대전화에
    덩어리가 될 수 있다. 이 근본적인 원인은 컨트롤러가 이 큰 해상도에서width, height, margin,padding이 부족하다는 것이다.왜 그랬을까?
    예를 들면 다음과 같습니다.
    상황: 당신의 앱의 어떤 activity에 TextView가 있는데 TextView의 폭을 160dp로 설정합니다.
    * 320x480의 휴대전화에서 dp와 px의 환산 공식에 따라 이 TextView는 320x480의 실제 기기에서 실제로
    160dp x 1.0(장치 밀도) = 160px.마침 화면의 반이다.정상으로 표시됩니다.
    * 480x800 휴대폰 중 160dp x 1.5 (장치 밀도) = 240px마침 화면의 절반이야.정상으로 표시됩니다.
    * 1280x780의 휴대전화 중 160dpx2(설비밀도) = 320px는 화면의 4분의 1만 표시되는 비정상적이다.
    그럼 이 상황에서 어떻게 해야 하나요?이 때 위에서 언급한values 폴더를 새로values-1280*720 폴더로 만들고dimens 파일을 다시 쓸 수 있습니다.
    이 해상도에서 문제가 있는 컨트롤을 표시하고 일일이 사이즈를 다시 설명하면 됩니다.
    그러면 문제가 생겼다. 실제 개발에서 우리가 컨트롤의 사이즈를 동적으로 설정하려면 픽셀 px만 설정할 수 있고 dp는 설정할 수 없다. 이런 상황에서 어떻게 해야 합니까?
    또한 간단합니다. dp와 px를 서로 전환시키는 도구 종류를 쓸 수 있습니다.변환 코드를 첨부하다.
    public class DensityUtil {  
      
        /** 
         *           dip         px(  ) 
         */  
        public static int dip2px(Context context, float dpValue) {  
            final float density = context.getResources().getDisplayMetrics().density;  
            return (int) (dpValue * density + 0.5f);  
        }  
      
        /** 
         *           px(  )         dp 
         */  
        public static int px2dip(Context context, float pxValue) {  
            final float density = context.getResources().getDisplayMetrics().density;  
            return (int) (pxValue / density + 0.5f);  
        }  
    }  

    총괄적으로 말하면 실제 개발에서
    가능한 한 dp를 많이 사용하고 px를 사용하지 않으며 사이즈가 일치할 수 있는 상황에서 레이아웃이 일치하지 않습니다.(이건 왜? 더 쉬우니까)
    **가중치 적합 **가중치 적합은 선형 레이아웃 LinearLayout에 적용됩니다.이것은 일부 컨트롤의 속성입니다, weight.
    만약 어떤 방향에서 weight를 사용한다면, 우리는 대응하는 방향에서 width를 0dp로 설정해야 한다.그것은 우리에게 0dp로 설정된 것은 weight를 사용했기 때문이라고 알려주었다. 시스템은 공간을 차지하는 크기를 계산하는 또 다른 알고리즘을 사용했다
    통속적으로 말하자면, View가 권중weight 속성을 설정하면, 이 View의 너비는 원래의 너비 (android:layout width) 와 나머지 공간 (다른 View 컨트롤이 차지하는 너비를 빼기) 의 비례와 같다.
    총괄적으로 말하자면 실제 개발에서 온라인성 구조에서
    weight가 가장 중요한 부분을 최대한 사용할 수 있다. 왜냐하면 어떤 해상도 휴대전화에 표시되는 것도 같은 효과이기 때문이다.
    후기 스크린을 적당히 맞추어 적지 않은 번거로움을 줄일 수 있다.물론 이것은 일정한 한계가 있다. 예를 들어 온라인 구조에서만 사용할 수 있고 복잡한 구조에서 사용하기 어렵다.
    **코드 어댑터 **는 기본적으로 화면 어댑터를 해결하는 궁극적인 방법이다. 바로 실행할 때 핸드폰 화면 속성을 동적으로 얻어 View 컨트롤러의 사이즈를 동적으로 설정하는 것이다.
    흔히 볼 수 있는 장면은 만약에 당신의 앱에 사이드바가 있다면 예를 들어 우리가 제3자의 슬라이딩 Menu를 사용한다면 우리는 그것을 화면에 미리 남겨 두는 공간으로 설정할 것이다. set Behind Offset(int pixels).
    우리는 화면의 폭을 동적으로 가져올 수 있으며, 화면의 3분의 2를 취하면 된다.(이 간단한 코드들은 군더더기 없이 서술한다)

    좋은 웹페이지 즐겨찾기