2017-03-01 1 views
0

나는 내 안드로이드 게임을 추켜 세우고있다. 게임에서 개발자가 사용자 지정보기를 사용해야한다는 것을 알았습니다. 레이아웃 XML을 사용하는 대신 사용자 정의보기를 사용해야하는 이유는 무엇입니까?사용자 정의보기를 사용할 때? - 안드로이드

+0

사용자 정의보기 XML을 팽창이 customImageView를 만들어 수신하는 폭 1.5 배 높이의 설정할 수있는 이미지 뷰가 필요? – TruongHieu

+0

Android SDK에서 제공하지 않는 것을 사용해야 할 때 사용자 정의보기를 사용합니다 (실제 코드). "레이아웃 XML"로 필요한 것을 얻을 수 있다면 ** 사용자 정의보기가 아닙니다 **. – Shark

+0

View 클래스를 확장하는 Java 클래스를 의미합니다. –

답변

1

사용자 정의보기는 어떤 경우에 유용합니다

  • 시각적으로 말하기가 아닌 사소한 뭔가 만들 - 당신이 인스턴스 - 그래프 화면에 뭔가 자신을 그리려는 의미입니다.
  • 성능 향상 - 게임의 주된 이유 일 수 있습니다. 레이아웃이 심하게 중첩 된 경우 (성능을 높이거나 서로 여러 개의보기를 배치하고 레이아웃이 서로 겹칠 때 화면을 과도하게 배치하는 등) 성능 문제가 발생할 수 있습니다. 사용자 정의보기를 사용하여 자신을 화면에 그려서
    또한 사용자 정의보기를 사용하면 GPU를 사용하여 하드웨어 가속 작업의 이점을 활용하여 화면에 직접 무언가를 그릴 수 있습니다.
  • 때때로 다른 장치 크기를 자동으로 조정하는 복잡한 레이아웃을 적용하는 것은 XML 레이아웃을 사용하는 사소한/불가능한 사명이며 사용자 지정보기에서 복잡한 동적 레이아웃을 만들 수 있습니다.
+0

제목과 재생 버튼이있는 간단한 메뉴가있는 경우 사용자 정의보기를 사용해야합니까? 아니면 더 나은 레이아웃을 사용하고 있습니까? –

+0

레이아웃, 아무 것도 얻지 못할 때 복잡해 지겠지만 레이아웃을 사용하여 구현할 수없는 몇 가지 사항, UI 요구 사항에 맞는 레이아웃, 성능 문제가없는 레이아웃 등을 언급했습니다. 대부분의 경우 귀하의 간단한 유스 케이스처럼) – yosriz

0

사용자 정의보기는 Android SDK에서 사용할 수없는보기의 특별한 요구 사항이있을 때 기본적으로 필요합니다. 예를 들어. 내 애플 리케이션 중 하나 나는 그것이 그래서 내가

public class CustomImageView extends ImageView { 

    private static final float ASPECT_RATIO = 1.5f; 

    public CustomImageView(Context context) { 
     super(context); 
    } 

    public CustomImageView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomImageView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     int width = MeasureSpec.getSize(widthMeasureSpec); 
     int height = Math.round(width * ASPECT_RATIO); 
     setMeasuredDimension(width, height); 
    } 
} 
+0

선형 레이아웃을 사용하고 있다면 LinearLayout.LayoutParams를 사용하여 높이를 1.5x 너비로 설정할 수 있다고 생각합니다. –

+0

예, 할 수 있습니다. 하지만 여기에는 ' t LinearLayoutParams를 호출 할 필요가있다. 내 코드에서 나는 더 많은 계산을하고 있었다. 그래서이 사용자 정의보기는 번거 로움을 줄이는데 도움이되었다. 또한 참조 용으로 단순한 구현이다. 좋은 customView의 예가이 라이브러리입니다. https://github.com/grantland/android-autofittextview –

관련 문제