導航:首頁 > 操作系統 > android載入

android載入

發布時間:2022-03-14 00:44:28

android提前載入一個Activity

請求網路,載入網頁, 本身都需要耗時的, 你在前一個Activity 去載入後一個Activity的東西 這樣設計就太合理,就如樓上所說, 你可以都寫在一個Activity里,用閃圖蓋住WebView

❷ android 載入更多怎麼用

建議查看附件,listView非同步下拉及上拉分頁載入數據的demo,源代碼。 ListView非同步分頁載入.zip大小:2.73M所需財富值:5 已經過網路安全檢測,放心下載 點擊下載下載量:0

❸ android動態載入view一個一個刷新怎麼實現

先看一下結構圖

可以看到ViewSwitcher和ViewFlipper都是繼承自ViewAnimator。


下面通過一個Demo了解一下ViewFlipper的用法

main.xml

Html代碼

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

<LinearLayout xmlns:android="htt p:/ /schemas.andro id.co m/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<ViewFlipper

android:id="@+id/viewFlipper"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

<include

android:id="@+id/layout01"

layout="@layout/layout01" />

<include

android:id="@+id/layout02"

layout="@layout/layout02" />

</ViewFlipper>

</LinearLayout>


layout01.xml

Html代碼

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

<LinearLayout xmlns:android="htt p:/ /schem as.andro id.c om/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center"

android:text="一個TextView"

android:textSize="40dip" />

</LinearLayout>


layout02.xml

Html代碼

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

<LinearLayout xmlns:android="htt p://schema s.andro id.c om/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center"

android:orientation="vertical" >

<ImageView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/ic_launcher" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="一個TextView + 一個ImageView"

android:textSize="20dip" />

</LinearLayout>

</LinearLayout>


ViewFlipperDemoActivity.java

Java代碼

package com.tianjf;

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.view.animation.AnimationUtils;

import android.widget.ViewFlipper;

public class ViewFlipperDemoActivity extends Activity implements

OnTouchListener {

private ViewFlipper viewFlipper;

// 左右滑動時手指按下的X坐標

private float touchDownX;

// 左右滑動時手指松開的X坐標

private float touchUpX;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);

viewFlipper.setOnTouchListener(this);

}


}

float XFrom = e1.getX();

float XTo = e2.getX();

float YFrom = e1.getY();

float YTo = e2.getY();

// 左右滑動的X軸幅度大於100,並且X軸方向的速度大於100

if (Math.abs(XFrom - XTo) > 100.0f && Math.abs(speedX) > 100.0f) {

// X軸幅度大於Y軸的幅度

if (Math.abs(XFrom - XTo) >= Math.abs(YFrom - YTo)) {

if (XFrom > XTo) {

// 下一個

mOnFlingListener.flingToNext();

} else {

// 上一個

mOnFlingListener.flingToPrevious();

}

}

} else {

return false;

}

return true;

}

public interface OnFlingListener {

void flingToNext();

void flingToPrevious();

}

}


MyViewFlipper.java

Java代碼

package com.tianjf;

import com.tianjf.MyGestureListener.OnFlingListener;

import android.content.Context;

import android.util.AttributeSet;

import android.view.GestureDetector;

import android.view.MotionEvent;

import android.view.View;

import android.widget.ViewFlipper;

public class MyViewFlipper extends ViewFlipper implements OnFlingListener {

private GestureDetector mGestureDetector = null;

private OnViewFlipperListener mOnViewFlipperListener = null;

public MyViewFlipper(Context context) {

super(context);

}

public MyViewFlipper(Context context, AttributeSet attrs) {

super(context, attrs);

}

public void setOnViewFlipperListener(OnViewFlipperListener mOnViewFlipperListener) {

this.mOnViewFlipperListener = mOnViewFlipperListener;

MyGestureListener myGestureListener = new MyGestureListener();

myGestureListener.setOnFlingListener(this);

mGestureDetector = new GestureDetector(myGestureListener);

}

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

if (null != mGestureDetector) {

return mGestureDetector.onTouchEvent(ev);

} else {

return super.onInterceptTouchEvent(ev);

}

}

@Override

public void flingToNext() {

if (null != mOnViewFlipperListener) {

int childCnt = getChildCount();

if (childCnt == 2) {

removeViewAt(1);

}

addView(mOnViewFlipperListener.getNextView(), 0);

if (0 != childCnt) {

setInAnimation(getContext(), R.anim.left_slip_in);

setOutAnimation(getContext(), R.anim.left_slip_out);

setDisplayedChild(0);

}

}

}

@Override

public void flingToPrevious() {

if (null != mOnViewFlipperListener) {

int childCnt = getChildCount();

if (childCnt == 2) {

removeViewAt(1);

}

addView(mOnViewFlipperListener.getPreviousView(), 0);

if (0 != childCnt) {

setInAnimation(getContext(), R.anim.right_slip_in);

setOutAnimation(getContext(), R.anim.right_slip_out);

setDisplayedChild(0);

}

}

}

public interface OnViewFlipperListener {

View getNextView();

View getPreviousView();

}

}


ViewFlipperDemoActivity.java

Java代碼

package com.tianjf;

import com.tianjf.MyViewFlipper.OnViewFlipperListener;

import android.app.Activity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.ScrollView;

import android.widget.TextView;

public class ViewFlipperDemoActivity extends Activity implements OnViewFlipperListener {

private MyViewFlipper myViewFlipper;

private int currentNumber;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

currentNumber = 1;

myViewFlipper = (MyViewFlipper) findViewById(R.id.myViewFlipper);

myViewFlipper.setOnViewFlipperListener(this);

myViewFlipper.addView(creatView(currentNumber));

}

@Override

public View getNextView() {

currentNumber = currentNumber == 10 ? 1 : currentNumber + 1;

return creatView(currentNumber);

}

@Override

public View getPreviousView() {

currentNumber = currentNumber == 1 ? 10 : currentNumber - 1;

return creatView(currentNumber);

}

private View creatView(int currentNumber) {

LayoutInflater layoutInflater = LayoutInflater.from(this);

ScrollView resultView = (ScrollView) layoutInflater.inflate(R.layout.flipper_view, null);

((TextView) resultView.findViewById(R.id.textView)).setText(currentNumber + "");

return resultView;

}

}


好了,代碼上完了,開始講解!

ViewFilpper的showPrevious()方法和showNext()方法是用來顯示已經在布局文件中定義好了的View,現在我們沒有在布局文件中為ViewFlipper添加View,那麼showPrevious()方法和showNext()方法就不能用了。但是我們怎麼實現滑動來切換View呢?用什麼方法呢?

這時候,我們就要自定義一個MyViewFlipper來監聽滑動事件,並做切換視圖的處理。

你可以讓MyViewFlipper實現OnTouchListener介面,然後實現onTouch方法,然後根據MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP的坐標判斷是不是滑動事件,就像ImageSwitcher中講解的那樣(htt p://bl og.csd n.n et/tianjf0514/article/details/7556487)

除了自己判斷是不是滑動事件,那麼Android有沒有直接提供哪個方法作為滑動事件的回調函數呢?答案是:提供了。OnGestureListener中的onFling方法就是滑動事件的回調函數。這時候你也許會毫不猶豫的讓MyViewFlipper實現OnGestureListener介面,並復寫onFling方法。這樣做當然可以,不過實現OnGestureListener介面不僅僅要復寫onFling方法,還要復寫其他的方法(onDown()、onShowPress()、onSingleTapUp()、onScroll()、onLongPress()),但是這些回調函數我們不需要,這就造成了垃圾代碼。

為了避免垃圾代碼,Android提供了一個類SimpleOnGestureListener已經實現了OnGestureListener介面和OnDoubleTapListener介面,並復寫了所有方法。那麼我們只要新建一個自己的MyGestureListener.java來繼承SimpleOnGestureListener,並有選擇性的復寫需要的方法(我們在此只復寫onFling方法)。

這時,我們就自定義了一個手勢類,並且這個手勢類會監聽滑動事件來做一些處理。但是我們怎麼利用這個手勢類呢?怎麼利用到MyViewFlipper類中去呢?

關於onFling方法,有一點要注意:不是每個View都能有onFling回調函數,一開始,我的flipper_view.xml布局文件最外層是一個LinearLayout,死活都走不到onFling方法,後來在外層又套了一個ScrollView,就能正常走到OnFling方法裡面了。

可以看到flingToNext方法和flingToPrevious方法裡面會判斷childCnt,如果為2,就removeViewAt(1);,然後再addView(mOnViewFlipperListener.getNextView(), 0);。這就要回顧一下ImageSwitcher的原理,ViewFlipper的原理和ImageSwitcher一樣,有且僅有2個子View,滑動時候就在這兩個子View上來回切換。index為0的就是當前看到的,index為1的就是看不見的。上面代碼的意思就是:當滑動時,必然要新添加一個View,那麼子View的個數有可能大於2,隨意要先判斷一下如果childCnt == 2,那麼就把index == 1的那個View(即看不見的View)給Remove調,然後把新添加的View添加到index == 0處。這樣可以減少內存消耗。

❹ android開發中怎麼添加activity的載入模式

在您需要的地方調用即可
private
mediaplayer
mmediaplayer;
private
void
playlocalfile()
{
mmediaplayer
=
mediaplayer.create(this,
r.raw.in_call_alarm);
//播放工程res目錄下的raw目錄中的音樂文件in_call_alarm
try
{
mmediaplayer.prepare();
}
catch
(illegalstateexception
e)
{
}
catch
(ioexception
e)
{
}
mmediaplayer.start();
headsetplay.setenabled(false);
mmediaplayer.setoncompletionlistener(new
oncompletionlistener()
{
public
void
oncompletion(mediaplayer
mp)
{
//播完了接著播或者關閉mmediaplayer
});
}

❺ Android類載入器以及與Java類載入器區別

載入的位元組碼不同

Android類載入器和Java的類載入器的類體系結構不一樣:

Android的BootClassLoader和Java的BootStrapClassLoader區別:

Android類載入器和Java的類載入器工作機制是類似的,使用雙親委託機制。

❻ Android開發 頁面載入慢的問題

小圖片載入理論上不會影響載入速度的,你們的項目是否在Ui線程進行了很多其他的操作導致了頁面載入慢的結果。

❼ android 中進入程序載入頁面怎麼做

界面載入過渡,通過是通過Handler 發送延遲消息來實現的。

具體實現代碼:

  1. 創建Handler 得到實例

    Handler = new Handler();

  2. 發送延遲消息

    Message msg = Message.obtain();

    handler.sendMessageDelayed(msg,2000);

  3. 第一個參數表示的消息體,第二個參數表示延遲時間

  4. 在handlerMessage中隱藏載入進度即可

❽ android項目中如何載入已有so庫

android項目中如何載入已有so庫方法:

❾ android 怎麼實現載入外部的布局

不能用layout,因為ID都是在R.id中查詢的,

  1. 要麼用代碼創建布局

  2. 要麼用WebView來載入一個html界面

像你這種需求,通常都是用webview來載入界面的,webview中,js可以與activity交互的

閱讀全文

與android載入相關的資料

熱點內容
配置路由器默認路由的命令是 瀏覽:591
加密計算器是什麼 瀏覽:120
伺服器怎麼執行sql 瀏覽:974
小孩子命令 瀏覽:708
貸款申請系統源碼 瀏覽:268
windowsxp文件夾打開後怎麼返回 瀏覽:664
怎麼把pdf變成圖片 瀏覽:797
17年程序員事件 瀏覽:496
iishttp壓縮 瀏覽:31
公司文件加密後拷走能打開嗎 瀏覽:186
headfirstjava中文 瀏覽:894
騰訊雲伺服器怎麼放在電腦桌面 瀏覽:8
批量生成圖片的app哪個好 瀏覽:496
小米10電池校準命令 瀏覽:96
移動商城系統app如何開發 瀏覽:692
用安卓手機如何發高清短視頻 瀏覽:339
怎樣運行java程序運行 瀏覽:553
海南根伺服器鏡像雲伺服器 瀏覽:536
weka聚類演算法 瀏覽:452
視頻伺服器修復是什麼意思 瀏覽:498