각도 버튼 설치

7351 단어 Android

각도 버튼이란?


toguru 버튼이란 사용자가 2개의 상태(On/Off)를 상호 전환할 수 있는 UI다.
안드로이드에는 ToggleButtonCheckBox가 있습니다.

API Level 14에서 ON/OFF를 간단히 전환하는 ViewSwitch를 추가했다.

toguru 단추에 대한 자세한 설명은 아래에 있습니다.
http://developer.android.com/guide/topics/ui/controls/togglebutton.html

문제.


죄송합니다. SupportLibrary에는 포함되지 않습니다Switch.
따라서 API Level 14 미만의 터미널은 사용할 수 없습니다Switch.

해결책


주요한 해결 방법은 두 가지가 있다.
하나는 API 레벨이 14 미만이어도 동작Switch을 할 수 있는 것과 비슷한View 자체 제작이다.
GiitHub에도 다음과 같은 백엔드 항목이 있습니다.
BoD/android-switch-backport
https://github.com/BoD/android-switch-backport
다른 방법은 API Level에 따라 디스플레이를 교체하는 것View입니다.
API Level 14 이후Switch에는 이전 터미널ToggleButton일 경우 이렇게 분류된다.
좀 복잡하다고 생각하지만 안드로이드는 Togule 단추 시스템의 View 집합CompoundButton을 처리할 수 있기 때문에 레이아웃 파일을 분리하기만 하면 간단하게 대응할 수 있다.

이루어지다


먼저 API Level 14 미만의 터미널 정의에 사용되는 레이아웃ToggleButton"API Level 14보다 작음"은 레이아웃 계층 구조에서 기술할 수 없으므로 기본 레이아웃을 정의합니다.
/res/layout/activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MyActivity">

    <ToggleButton
        android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
그런 다음 API Level 14 이상 터미널Switch에 대한 레이아웃을 정의합니다.
이때 레이아웃 파일 이름과 각도 버튼android:id이 완전히 일치해야 합니다.
/res/layout-v14/activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MyActivity">

    <Switch
        android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
마지막으로 Activity측의 처리입니다.
소스 코드SwitchToggleButton를 함께 CompoundButton로 처리합니다.CompoundButtonSwitch처럼 두 가지 상태View를 가진 추상류로 상태의 취득과 다람쥐 관련 처리 등을 집중시켰다Switch,ToggleButton,CheckBox 등은 모두 CompoundButton의 자류를 계승했다.
Activity.java
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);

        CompoundButton toggle = (CompoundButton)findViewById(R.id.compoundButton);
        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // 状態が変更された
                Toast.makeText(MyActivity.this, "isChecked : " + isChecked, Toast.LENGTH_SHORT).show();
            }
        });
    }
이렇게 되면 어느 각도 버튼이든 클릭할 때 현재 상태에 맞는 토스트가 나온다.

결실


이전 설치에서 터미널 버전에 따라 디스플레이를 구분할 수 있습니다.
첫 번째는 2.3 단말기, 두 번째는 4.4 단말기의 디스플레이이다.
 

좋은 웹페이지 즐겨찾기