다화면에 대응하는 스케치북 개발에서 했던 일과 소감 총결산

9283 단어 AndroidJava

개시하다


본고는 여러 창의 스케치북 개발에서 했던 간단한 해설과 소감을 총결하였다.앞으로 여러 창의 스케치북 개발을 연구하는 쪽의 참고가 되었으면 좋겠습니다.
실제로 조작하고 싶은 사람은 이쪽부터 하세요.다중 창은 스케치북이 가로로 되어 있을 때만 유효합니다.
https://play.google.com/store/apps/details?id=com.wantedly.android.visit&hl=ja

해보신 소감.


안드로이드 디벨로퍼스의 공식 영상에서 "프래그먼트 같은 도구를 쓰면~ 의외로 간단하다"라고 언급해 실제로 해보니 "의외로 간단하다"는 결과가 나왔다.반면'단순'에 대응하지 못하면 원래 디자인이 좋지 않을 수도 있다.
https://www.youtube.com/watch?v=x_gxZd9kLv4#t=7m00s
개발자들이 비교적 신경 쓰는 비용 문제에 관해서는 이번 개발 기간(코딩, 테스트)이 일주일 정도밖에 되지 않았고, 앞으로는 태블릿PC 처리에 따라 유지보수 부담이 거의 증가하지 않을 것으로 보인다.이 점도 응용 프로그램과 디자인 방법을 보고 참고만 제공해야 한다.
이번 태블릿PC 개발을 통해 생각보다 훨씬 간단해졌습니다. 앞으로 제가 관련된 응용 프로그램을 모두 태블릿PC로 만들고 싶습니다.

개발 전제


여기에도 Fragment를 사용해서 디자인을 했다고 기재되어 있습니다.
http://developer.android.com/guide/practices/tablets-and-handsets.html#Guidelines

했던 일 #1 레이아웃 디자인


이번에 개발한 앱은 리스트와 세부 화면이 다수를 차지해 2개 화면으로 구성됐다.

또한 레이아웃을 효과적으로 이용하기 위해 위의 그림과 같은 화면 구성을 채택했다.한편 이번 개발의 목표는 ③의 대응이다.②의 해당사항은 아래 항목을 확인하십시오.간단하게 대처할 수 있다.
http://qiita.com/suzukihr/items/1a3204e6c713cf870f8d

했던 일 #2 레이아웃 만들기


스마트폰/태블릿PC는 세로로 사용할 때 다음과 같은 배치를 준비했다.
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
res/layout-sw600dp-land/폴더*를 만들고 두 창의 레이아웃을 준비하여 한 창의 레이아웃을 대체합니다.
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"
    android:divider="?android:attr/dividerHorizontal"
    android:orientation="horizontal"
    android:showDividers="middle">

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />

    <FrameLayout
        android:id="@+id/container_right"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2" />

</LinearLayout>
* 자세한 내용은 아래 링크를 참조하십시오.
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/guide/practices/screens_support.html

했던 일 #3 사건 처리의 실현


MainActivity는 MainFragment, DetailActivity는 DetailFragment를 의미하며, 태블릿PC가 대응하기 전에 MainActivity(또는 MainFragment) 내에서 다음과 같은 사건 처리를 했다.
MainActivity.java(MainFragment.java)
...

    // MainActivity の場合
    setContentView(R.layout.activity_main);

...

    Intent intent = new Intent(this, DetailActivity.class);
    startActivity(intent);

...
변경은 다음과 같습니다.오른쪽에 View가 있으면 리플렉스 (또는 add) Fragment에 있을 수 있습니다.이벤트 처리는 MainActivity 내에서 수행됩니다.
MainActivity.java
...

    setContentView(R.layout.activity_main);

...

    if (findViewById(R.id.container_right) != null) {
        getSupportFragmentManager().beginTransaction()
            .replace(R.id.container_right, new DetailFragment())
            .commit();
    } else {
        Intent intent = new Intent(this, DetailActivity.class);
        startActivity(intent);
    }

...
2 창에 대응하는 기본 처리는 다음과 같다.(간단한 설명을 위해 DetailActivity(DetailFragment)에 전달된 매개변수는 생략됨)
이외에도 화면이 회전할 때의 처리를 생략하였습니다(아래 문서를 참조하십시오).

읽을 문서


태블릿PC를 개발할 때 참고할 수 있는 공식 문서 링크다.
  • 다양한 화면 크기 지원
    http://developer.android.com/guide/practices/screens_support.html
  • 화면 크기별 디자인에 대한 모범 사례
    http://developer.android.com/training/multiscreen/index.html
  • 태블릿 및 스마트폰 지원 모범 사례
    http://developer.android.com/guide/practices/tablets-and-handsets.html
  • Fragment에서 동적 UI 만들기
    http://developer.android.com/training/basics/fragments/index.html
  • 화면 회전 시 대응
    http://developer.android.com/guide/topics/resources/runtime-changes.html
  • 좋은 웹페이지 즐겨찾기