編輯:關於Android編程

Layout布局文件代碼
<frameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
注意要點:(1)主要視圖(上述FrameLayout)必須為DrawerLayout中的第一個孩子,因為XML意味著z順序和抽屜必須的內容。
(2)主要內容視圖必須設置為匹配父視圖的寬度和高度,因為它代表整個UI導航抽屜時隱藏。
(3)抽屜視圖(上述ListView)必須指定它的水平重力與android:layout_gravity屬性。支持從右到左的語言(RTL),指定值與“開始”而不是“左”(右邊的抽屜裡出 現時,布局是RTL)。
(4)抽屜視圖指定寬度的dp單位和父視圖的高度匹配。抽屜的寬度應不超過320 dp所以用戶總是可以看到部分的主要內容。
(5)DrawerLayout必須成為布局的根節點
MainActivity的代碼package com.example.g07_navigationdrawer;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
private String[] mPlanetTitles; // listView的每一個item的名字
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle; // 用來監聽DrawerLayout事件
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// 為ListView添加適配器
mDrawerList.setAdapter((ListAdapter) new ArrayAdapter(this,
android.R.layout.simple_list_item_1, mPlanetTitles));
// 監聽ListView的點擊事件
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
// 監聽DrawerLayout的監聽事件
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_launcher, R.string.app_name, R.string.app_name) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
Toast.makeText(MainActivity.this, "抽屜關閉了", Toast.LENGTH_SHORT)
.show();
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
Toast.makeText(MainActivity.this, "抽屜打開了", Toast.LENGTH_SHORT)
.show();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
private class DrawerItemClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView> parent, View view, int position,
long id) {
// 根據ListView的被選中的選項切換界面布局
Fragment fragment = new Fragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment).commit();
mDrawerList.setItemChecked(position, true);
// 給操作欄設置標題
getActionBar().setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
}
}
Android簡易實戰教程--第二十九話《創建圖片副本》
承接第二十八話加載大圖片,本篇介紹如何創建一個圖片的副本。安卓中加載的原圖是無法對其修改的,因為默認權限是只讀的。但是通過創建副本,就可以對其做一些修改,繪制等了。首先創
Android 七種進度條的樣式
當一個應用在後台執行時,前台界面就不會有什麼信息,這時用戶根本不知道程序是否在執行、執行進度如何、應用程序是否遇到錯誤終止等,這時需要使用進度條來提示用戶後台程序執行的進
Android四大組件之Service服務學習筆記(一)
Service是安卓四大組件之一,服務是用在後台處理事情的,並且是不可見的,該服務不是我們所說的服務器的服務,他經常用來處理一些循環操作,但是它不同於子線程,服務是運行在
Android 6.0 運行時權限封裝框架
1.概述 視頻講解都已經錄了好幾天,但是最近實在抽不開身一直在忙Unity3D,就連光棍節都在寫,上次我們只是寫了Android 6.0 運行時權限處理解析,但是並未對