編輯:Android開發實例
背景介紹:
在做Android項目開發之前你需要做三件事情:第一、下載Android SDK(你可以在這裡下載),第二、准備項目編輯器(我建議使用eclipse )第三、下載Android的Eclipse插件。
當你准備好你的環境之後,可以開始學習本教程。
當你第一次打開Android SDK,您需要創建一個虛擬設備,我打開建議創建一個普遍的設備為目標的Android 1.6 API Level 4使用,然後你需要添加硬件功能,例如:SD卡支持,Accellerometer,相機支持等等,如果你需要幫助,安裝Android虛擬設備跟隨這個鏈接。http://developer.android.com/guide/developing/tools/avd.html
開始eclipse項目:
1、 選擇File > New > Project.
2、 選擇Android > Android Project,點擊 Next.
3、 選擇項目目錄:
A、輸入一個項目名稱:這是你所創建的項目所處的文件夾
B、根據目錄選擇Create new project in workspace。:選擇你的workspace的位置
C、根據Target,選擇Android的Target,作為該項目的創建Target使用。生成的Target指定你想建立的應用的Android平台。
說明:除非你知道你將使用最新SDK中引入的新的API,否則你應該盡可能選擇一個最低的平台版本,比如Android 1.6。
D、根據屬性填寫必要的字段
@鍵入應用程序的名字:
@鍵入一個package 名:你的所有源代碼都存放在這個package中
@選擇Create Activity項,然後為你的主Activity鍵入一個名字
@輸入一個Min SDK Version,這是一個整數,指示需要正確運行應用程序最低的API級別。進入這個這裡會自動設置Android Manifest文件中的minSdkVersion屬性。如果你不確定需要使用的合適的API 級別,為你在Target tab中所選的Build Target復制列出的API Level。
4、 點擊finish
當你完成了之後,ADT已經為您創建好了以下文件夾和文件:
src/:包含任何的ActivityJava文件。
:包含編譯應用程序所生成的android.jar文件。
gen/:包含了由ADT所生成的Java文件。包含R.java文件和從AIDL文件創建的接口。
assets/:這個是空的,可用來存儲raw asset文件。
res/:這是應用程序的資源文件,諸如:drawable files, layout files, string 值等。
AndroidManifest.xml:項目的Android Manifest。
default.properties:這個文件包含一些項目設置,如build target。這個文件是該項目的組成部分,因此,它被維護在一個源版本控制系統中。它絕不應手動編輯(編輯項目屬性,右鍵單擊該項目文件夾並選擇“屬性”)
通過觸摸屏的事件,如何滑動兩個(或更多)布局,如新聞及天氣。
現在,你已經充分了解Android並准備好了SDK等環境的搭建,我們要想做Android開發的第一件事情就是仿效的圖形效果。
要做到這一點,我們需要一些Java代碼和XML布局的一點技巧。
<ViewFlipper
android:layout_margin="6dip"
android:id="@+id/layoutswitcher"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_height="wrap_content"
android:id="@+id/firstpanel"
android:paddingTop="10dip"
android:text="my first panel"
android:layout_width="fill_parent"
android:layout_weight="1"
android:text >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_height="wrap_content"
android:id="@+id/secondpanel"
android:paddingTop="10dip"
android:text="my second panel"
android:layout_width="fill_parent"
android:layout_weight="1"
android:text >
</TextView>
</LinearLayout>
</ViewFlipper>
正如你所看到的,我添加了1個ViewFlipper,2 個LinearLayout並為每個內部布局simpletextview,建立一個適當的切換布局第一步是很有必要,你可以自定義你想要的兩個內布局風格,以及如果你想要添加工具欄萊切換內部布局。
第二步、Java 代碼(通過觸摸來切換布局)
從src/中打開你的main class,並且在類的開始部分聲明兩個變量:
private ViewFlipper vf;
private float oldTouchValue;
第一個變量 VF用於constrol ViewFlipper,第二個變量時觸摸事件所需要的。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
vf = (ViewFlipper) findViewById(R.id.switchlayout);
}
我們需要聲明viewflipper。
第三步:touch Event
移動電話最重要的特點之一就是觸摸屏系統,就像iPhone應用程序或其他設備,用戶更喜歡用他們的手指通過接觸在不同的Actives之間進行切換。
在Android開發中,為了附加一個觸摸事件你可以做兩件事情:“實現touchlistener”通過重寫主函數來聲明onTouchEvent。在這個例子中,我們用到的是第二種情況。
@Override
public boolean onTouchEvent(MotionEvent touchevent) {
switch (touchevent.getAction())
{
case MotionEvent.ACTION_DOWN:
{
oldTouchValue = touchevent.getX();
break;
}
case MotionEvent.ACTION_UP:
{
if(this.searchOk==false) return false;
float currentX = touchevent.getX();
if (oldTouchValue < currentX)
{
vf.setInAnimation(AnimationHelper.inFromLeftAnimation());
vf.setOutAnimation(AnimationHelper.outToRightAnimation());
vf.showNext();
}
if (oldTouchValue > currentX)
{
vf.setInAnimation(AnimationHelper.inFromRightAnimation());
vf.setOutAnimation(AnimationHelper.outToLeftAnimation());
vf.showPrevious();
}
break;
}
}
return false;
}
正如你可以看到,當用戶進行第一次觸摸時,設備將會用他的手指的X坐標填補浮點變量(oldTouchValue),那麼當用戶將他的手指拿開時,我會檢查最新的位置,以決定是否在用戶是否要到下一個或上一個位置(oldTouchValue currentX)。要改變布局的代碼是相同的,但如果用戶想要去下一個位置或前一個位置時我會用不同的動畫,為了解釋這個動畫和 AnimationHelper,示例代碼如下:
//for the previous movement
public static Animation inFromRightAnimation() {
Animation inFromRight = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
inFromRight.setDuration(350);
inFromRight.setInterpolator(new AccelerateInterpolator());
return inFromRight;
}
public static Animation outToLeftAnimation() {
Animation outtoLeft = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
outtoLeft.setDuration(350);
outtoLeft.setInterpolator(new AccelerateInterpolator());
return outtoLeft;
}
// for the next movement
public static Animation inFromLeftAnimation() {
Animation inFromLeft = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
inFromLeft.setDuration(350);
inFromLeft.setInterpolator(new AccelerateInterpolator());
return inFromLeft;
}
public static Animation outToRightAnimation() {
Animation outtoRight = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, +1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
outtoRight.setDuration(350);
outtoRight.setInterpolator(new AccelerateInterpolator());
return outtoRight;
}
你可以決定把這些方法放在一個靜態類中,或在類中進行聲明。
結論:
現在你有基類和事件由右至左(show.previous),從左至右(show.next),來捕捉觸摸運動。一個簡單的代碼解釋了4個動畫運動和一個簡單的布局。當有兩個以上的布局和更復雜的內容時我會建議做進一步測試。
本文實例講述了Android編程實現ViewPager多頁面滑動切換及動畫效果的方法。分享給大家供大家參考,具體如下: 一、首先,我們來看一下效果圖,這是新浪微博
引言 程序猿們,是否還在為你的老板辛辛苦苦的打工而拿著微薄的薪水呢,還是不知道如何用自己的應用或游戲來賺錢呢! 在這裡IQuick將教您如何同過自己的應用
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用