Latest web development tutorials

la frammentazione Android singolo fotogramma

cornice detriti singola: frammenti di un singolo fotogramma è stato progettato per i dispositivi di piccole dimensioni dello schermo, come ad esempio i dispositivi palmari (telefoni cellulari), il sostegno Android 3.0 o versioni successive.


Esempi

Questo esempio spiega come creare i propri pezzi. Qui creiamo due frammenti, uno dei quali è utilizzato nel dispositivo è un cross-schermo quando il dispositivo viene utilizzato in un altro tempo schermo verticale. Seguiamo i passi cominciano.

passo descrizione
1 Utilizzando Android Studio IDE per creare un'applicazione Android, denominata singoli frammenti, nome pacchetto cn.uprogrammer.singlefragments.
2 Modificare il file attivo principale, come mostrato di seguito MainActivity.java. Qui stiamo andando a controllare l'orientamento del dispositivo, e sulla base di questo per passare da pezzi diversi.
3 Creare PortraitFragment.java e LandscapeFragment.java due file nel pacchetto cn.uprogrammer.singlefragments e il metodo associato.
4 Creare un file di layout res / layout / landscape_fragment.xml e res / layout / portrait_fragment.xml per definire il layout dei due frammenti.
5 Modificare res / layout / activity_main.xml per contenere due frammenti.
6 Definire un costante bisogno nella res / valori / strings.xml in.
7 Avviare emulatore di Android per eseguire l'applicazione e verificare i risultati delle modifiche apportate all'applicazione.

Di seguito sono riportati i principali contenuti del file src attiva / cn.uprogrammer.singlefragments / MainActivity.java di:

package cn.uprogrammer.singlefragment;

import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.res.Configuration;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Configuration config = getResources().getConfiguration();

        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction =
                fragmentManager.beginTransaction();

        /**
         * 检测设备方向,并做相应地操作。
         */
        if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            /**
             * 设备的横屏模式。
             */
            LandscapeFragment ls_fragment = new LandscapeFragment();
            fragmentTransaction.replace(android.R.id.content, ls_fragment);
        }else{
            /**
             * 设备的竖屏模式。
             */
            PortraitFragment pm_fragment = new PortraitFragment();
            fragmentTransaction.replace(android.R.id.content, pm_fragment);
        }
        fragmentTransaction.commit();
    }
}

Creare due file frammentati LandscapeFragment.java e PortraitFragment.java in cn.uprogrammer.singlefragments pacchetto.

Quanto segue è il file LandscapeFragment.java contenuti:

package cn.uprogrammer.singlefragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class LandscapeFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        /**
         * Inflate the layout for this fragment
         */
        return inflater.inflate(
                R.layout.landscape_fragment, container, false);
    }

}

Quanto segue è il file di contenuto PortraitFragment.java:

package cn.uprogrammer.singlefragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class PortraitFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        /**
         * Inflate the layout for this fragment
         */
        return inflater.inflate(
                R.layout.portrait_fragment, container, false);
    }
}

Creare due file di layout landscape_fragment.xml e portrait_fragment.xml nella directory res directory / layout.

Quanto segue è il file landscape_fragment.xml contenuti:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#7bae16">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/landscape_message"
        android:textColor="#000000"
        android:textSize="28sp" />

    <!-- More GUI components go here  -->

</LinearLayout>

Quanto segue è il file portrait_fragment.xml contenuti:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#666666">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/portrait_message"
        android:textColor="#000000"
        android:textSize="28sp" />

    <!-- More GUI components go here  -->

</LinearLayout>

Quello che segue è il contenuto della res / file / activity_main.xml di layout, che contiene due pezzi:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

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

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

</LinearLayout>

Garantire res / valori file / strings.xml contiene quanto segue:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Single Fragment</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="landscape_message">这是横屏模式碎片</string>
    <string name="portrait_message">这是竖屏模式碎片</string>
</resources>

Diciamo solo eseguire un modificati applicazioni singoli frammenti. Presumo che hai creato AVD durante l'ambiente di installazione. Aprire il progetto nel file attivo, fare clic sulla barra degli strumenti immagine Icona per eseguire l'applicazione in Android Studio. Android Studio installare l'applicazione sul AVD e lo avvia. Se tutto va bene, sarà visualizzata la finestra di emulazione come segue:

immagine

In conformità con la seguente per cambiare la direzione della modalità schermo emulatore:

  • fn + controllo + F11 cambiamento mac nel paesaggio come ritratto e viceversa
  • Ctrl + F11 sulle finestre
  • Ctrl + F11 su Linux

Quando si cambia la modalità, si vedrà la modalità orizzontale adatto alla realizzazione della pagina:

immagine

In questo modo, è possibile allo stesso evento, utilizzando pezzi non utilizzati per ottenere diverse interfacce. È possibile costruire l'interfaccia in base alle proprie esigenze utilizzando un diverso tipo di componenti di interfaccia.