當前位置:首頁 » 安卓系統 » android簡單例子

android簡單例子

發布時間: 2022-07-24 04:12:17

⑴ 求一個 android 資料庫操作 的小例子(增 刪,查看)

package com.example.androiddbtest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class SqliteOpenHelperTest extends SQLiteOpenHelper {
public SqliteOpenHelperTest(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO 創建資料庫後,對資料庫的操作
arg0.execSQL("CREATE TABLE mytable (_id INTEGER , name varchar(20));");
Log.i("sqlite", "創建表");
}

/**
* // TODO 更改資料庫版本的操作
* arg1 舊版本號
* arg2 新版本號
*/
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
Log.i("sqlite", "更新資料庫");
}

@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
// TODO 每次成功打開資料庫後首先被執行
}
}

package com.example.androiddbtest;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class SQLiteTestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sqlite_mian);

Button bt1 = (Button) findViewById(R.id.sqbtn1);
Button bt2 = (Button) findViewById(R.id.sqbtn2);
Button bt4 = (Button) findViewById(R.id.sqbtn4);
Button bt5 = (Button) findViewById(R.id.sqbtn5);
Button bt3 = (Button) findViewById(R.id.sqbtn3);

bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Log.i("sqlite", "創建testdb");
SqliteOpenHelperTest soh = new SqliteOpenHelperTest(SQLiteTestActivity.this, "mytestdb", null, 1);
SQLiteDatabase db = soh.getWritableDatabase();
db.execSQL("insert into mytable(_id,name) values(2,'bbbbb')");
ContentValues cv = new ContentValues();
cv.put("_id", 1);
cv.put("name", "aaaaa");
db.insert("mytable", null, cv);
db.close();
if (db != null) {
db.close();
}
Toast.makeText(SQLiteTestActivity.this, "存取信息成功!", Toast.LENGTH_SHORT)
.show();
}
});
bt4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SqliteOpenHelperTest soh = new SqliteOpenHelperTest(
SQLiteTestActivity.this, "mytestdb", null, 1);
SQLiteDatabase db = soh.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", "dddddddddddddd");
db.update("mytable", cv, "_id=?", new String[] { "2" });
db.close();
Toast.makeText(SQLiteTestActivity.this, "修改信息成功!", Toast.LENGTH_SHORT)
.show();
}
});
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SqliteOpenHelperTest soh = new SqliteOpenHelperTest(
SQLiteTestActivity.this, "mytestdb", null, 1);
SQLiteDatabase db = soh.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from mytable where _id=?",new String[] { "2" });
int count = cursor.getColumnCount();
Toast.makeText(SQLiteTestActivity.this,"數據總共:" + count , Toast.LENGTH_SHORT).show();
while (cursor.moveToNext()) {
Toast.makeText(SQLiteTestActivity.this,
"_id:" + cursor.getInt(0) + "。name:" + cursor.getString(1),Toast.LENGTH_SHORT).show();
}
if (soh != null) {
soh.close();
}
}
});
bt5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteTestActivity.this.startActivity(new Intent(SQLiteTestActivity.this,
SqliteListViewActivity.class));
}
});
bt3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SqliteOpenHelperTest soh = new SqliteOpenHelperTest(
SQLiteTestActivity.this, "mytestdb", null, 1);
SQLiteDatabase db = soh.getWritableDatabase();
db.delete("mytable", "_id=?", new String[] { "1" });
db.close();
Toast.makeText(SQLiteTestActivity.this, "清除id為1的信息成功!",
Toast.LENGTH_SHORT).show();
}
});
}
}

package com.example.androiddbtest;
import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class SqliteListViewActivity extends ListActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.sqlitelistview_main);
SqliteOpenHelperTest soh = new SqliteOpenHelperTest(
SqliteListViewActivity.this, "mytestdb", null, 1);
SQLiteDatabase db = soh.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from mytable where _id=?",new String[] { "2" });

SimpleCursorAdapter adapter = new SimpleCursorAdapter(
SqliteListViewActivity.this,android.R.layout.simple_list_item_2,
cursor, new String[] {"_id", "name" }, new int[] { android.R.id.text1,android.R.id.text2 }, 0);

ListView listView = (ListView) findViewById(android.R.id.list); listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {

SqliteListViewActivity.this.listView = (ListView) arg0;
ListView templist = (ListView) arg0;
View mView = templist.getChildAt(arg2);
TextView t1 = (TextView) mView.findViewById(android.R.id.text1);
TextView t2 = (TextView) mView.findViewById(android.R.id.text2);
String mytitle = t1.getText().toString();
String mycontent = t2.getText().toString();

Toast.makeText(
SqliteListViewActivity.this,
"項目被點擊~~~" + mytitle + "~~~" + mycontent
+ "~~~" + arg2, Toast.LENGTH_SHORT).show();
}
});

// 添加長按點擊
listView.(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.setHeaderTitle("確定刪除?");
menu.add(0, 0, 0, "OK");
menu.add(0, 1, 0, "Cancel");
Toast.makeText(SqliteListViewActivity.this,"長按點擊~~~", Toast.LENGTH_SHORT).show();
}
});

}
@Override
public boolean onContextItemSelected(MenuItem item) {
//ContextMenuInfo menuInfo = (ContextMenuInfo) item.getMenuInfo();
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
int id = (int) info.id;// 這里的info.id對應的就是資料庫中_id的值

switch (item.getItemId()) {
case 0:
ListView templist = listView;
View mView = templist.getChildAt(id);
TextView t1 = (TextView) mView.findViewById(android.R.id.text1);
TextView t2 = (TextView) mView.findViewById(android.R.id.text2);
String mytitle = t1.getText().toString();
String mycontent = t2.getText().toString();
Toast.makeText(
SqliteListViewActivity.this,
"onContextItemSelected~~~" + mytitle + "~~~" + mycontent , Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(
SqliteListViewActivity.this, id +
"~~~選擇了取消", Toast.LENGTH_SHORT).show();
break;
}

return super.onContextItemSelected(item);
}
}

res\layout 下的xml

sqlite_mian.xml

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

<Button
android:id="@+id/sqbtn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="存取信息" />

<Button
android:id="@+id/sqbtn4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="修改信息" />
<Button
android:id="@+id/sqbtn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="讀取信息" />

<Button
android:id="@+id/sqbtn5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="展示信息" />
<Button
android:id="@+id/sqbtn3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="清除信息" />

</LinearLayout>

sqlitelistview_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>

<TextView
android:id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NO DATA" />

</LinearLayout>

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androiddbtest"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<!-- 在SDCard中創建與刪除文件許可權 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard寫入數據許可權 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SQLiteTestActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".SqliteListViewActivity" >
</activity>

</application>

</manifest>

其他的strings.xml這類的,你自己看著配配吧,沒啥東西

⑵ android 聲控游戲怎麼開發的 ,有什麼簡單的例子沒

你好!
一般都是做音量大小識別來進行控制
你可以看看Android中錄音的那幾個類
希望對你有所幫助,望採納。

⑶ Android開發中用View做一個最簡單的顯示圖片的例子,只顯示圖片,簡短的!謝謝了!

這個很簡單!源代碼發給你!

⑷ 如何做好Android的開發

開發人員應當在學習並深入了解Android之後,在自己的軟體中,將Android的優勢發揮出來,同時通過一些手段去彌補Android 本身的缺陷或不足。下面來看一下Android擁有的特點吧:
與硬體交互非常方便,包括攝像頭、GPS 等,都可以簡單的操作。
擁有自己的運行時和虛擬機,優秀的內存管理能力。
提供豐富的界面控制項供開發者使用,允許可視化開發,並保證Android平台下的應用程序界面一致。
提供輕量級的進程間通信機制。
支持無界面的後台服務類應用程序。
支持高效、快速的數據存取方式。
在這些特性的支持下,試圖在Android下開發一個應用不會太過困難。事實上,一個稍有 java經驗的開發人員,都可以快速的上手進行 Android的開發。而開發的核心,一直以來也是圍繞著Android手機幾個大的特點來進行的,其中就包括了觸摸屏、攝像頭、GPS模塊、互聯網功能、語音輸入、Google賬戶等。需要說的是,如果一位 J2ME 工程師想轉行做Android,那麼他將付出的代價比J2SE或J2EE工程師要大得多。畢竟Android所支持的是基本完整的J2SE的子集,反過來再看J2ME就會覺得它的功能太弱了。
除了Java外,還有許多語言支持Android 的開發,比較為人所熟知的有Scala,而作為 Android本身的底層語言,C/C++的作用也完全不可忽視。而目前的開源社區內,已經有一些牛人在嘗試讓更多的語言可以開發Android應用。比較有代表性的可能是Koushik Dutta,他已經解決了在Mono平台下,讓Dalvik調用Mono 代碼的問題。或許在不久的將來,.NET 下的所有語言,都有可能藉助Mono跑在Android上,這是一件值得讓人期待的事情。
語言已不是問題,那還有什麼會成為問題?也許很多人會說「經驗」。誠然,經驗決定了一位開發人員能否快速地、流暢地完成開發工作,也決定了軟體的魯棒性,Bug的數量、等級和修正問題的返工次數。不過我認為,這些都不重要,哪怕是一個 Android 行業的新人,一邊查詢文檔一邊做開發,雖然效率會很低,但是一樣能把項目做完。在 Android 下,開發技術幾乎是沒有瓶頸的。那麼瓶頸在哪裡呢?事實上,在用過很多軟體後,就會發現,有很多軟體並不好用。很多用戶不願意用某個軟體,也並不是因為軟體沒有技術含量或是滿足不了需求,原因很簡單,就是不好用。
用戶體驗是凌駕於技術之上的,可以說,優秀的用戶體驗將可以起到事半功倍的效果,在一堆同類的軟體中,下載量最大的,一定是讓用戶用著感覺最舒服的,哪怕它的功能並不比其他的產品出色,甚至略差一些。我見過很多開發人員,他們視技術為己任,一心只鑽研技術,認為技術出色的軟體,會受到用戶的好評,甚至在一個手機游戲中,加入各種華麗炫目的3D效果。這些固然都不錯,但是真正的用戶卻不會喜愛它們。在移動應用中,簡潔明快才是用戶希望看到的。試想一下,當用戶在手機上玩一個RPG游戲,並被華麗的3D效果充斥了整個界面,那麼他將完全無法著手進行下一個動作。誠然,華麗的畫面是很容易吸引人,但是在這種華麗的背後,卻會直接把用戶和開發者自己領入一條深淵,再也無法回頭,最終的結果就是,用戶完全舍棄該款游戲,開發者或運營商也完全賺不到錢。
在移動平台開發的過程中,用戶體驗已經成為首要大事,只有聚焦在用戶的設計,才有可能被用戶所接受。下面來看一些典型的例子。
左圖是經典的Windows Mobile 6.1的界面,從Windows Mobile推出的那天起,這個界面就一直被宣傳成內容充實,包含常用所有功能的入口,非常貼合用戶的實際需求。也許在當時,這樣的界面確實能滿足一定的需求,但是到了現在,這樣的設計只能說是遠離用戶。每一項的高度都過小,因此需要使用筆來點擊,或是使用指甲。位於右下角的三個圖標,或許用指甲都很難點到,使用筆即多佔用用戶的一隻手,體驗是直線下降的。在用戶希望連耳朵都解放的現在,多佔用一隻手是什麼概念,這就意味著用戶乘車時沒有辦法握緊扶手,或者沒有辦法拎著自己的包。另外,在手機操作時,擁有一隻空閑著的手,就能有更多機會處理突發事件,佔用用戶的兩只手實在是不應該的。可以說Windows Mobile的用戶體驗是非常差勁的,幸好微軟在新的Windows Phone 7中,對界面做了巨大的改進,沒有再犯過去的錯誤。
再來看看Android是如何做的,這個界面看起來簡潔明了,和上面的Windows Mobile相比,可以說是毫不出彩,甚至在有些人的眼裡,這個界面很醜陋。但它卻是相當好用的,圖標很大,圖標的間距也很大。這就決定了用戶可以使用指腹去進行點擊的操作,並且點擊的范圍可以比較大,降低了點錯的幾率。
雖然屏幕點擊的方式一定程度上也和屏幕的材質有關,比如電阻屏只能用筆或指甲,而電容屏允許使用指腹,有一些還可以支持多點觸摸。對於普通用戶來說,使用指腹比使用指甲顯得更為常見,原因很簡單,如果圖標很大,那麼用戶會不自覺的使用指腹去點擊,而如果圖標很小,那麼用戶會屈起手指然後用指甲去戳屏幕。這個「屈起手指」的動作不能被大部分的用戶所接受。因此電容屏會漸漸流行,而電阻屏會漸漸被淘汰,這完全是根據用戶的體驗,優勝劣汰,是一件非常符合進化論的事。
用戶體驗還不僅僅是界面上的那些事,作為手機來說,每一個特點都將成為用戶體驗可以挖掘的一部分。比如說是否有鍵盤、是否支持多點觸摸等。有鍵盤的手機與無鍵盤的手機,用戶在執機時用的手勢必然不同,一個著重點在機身下半部分,即鍵盤上;而另一個著重點在整個屏幕上,換言之,手指可能在屏幕的任何一個位置活動。針對設備的具體情況來對應用進行設計也是很有必要的,目前Google為Android設計的按屏幕大小自動切換布局方式的框架非常有用,它改變了以往在程序的設計過程中,需要為每一種設備單獨編譯一個版本,或是僅對不同的屏幕做簡單拉伸的情況。另外,在設計中,還需要考慮實際操作體驗,比如放大一張圖片,是使用放大按鈕,還是使用多點觸摸。這兩種做法都很常見,但是在一個有此需求的應用中,卻不能單獨的使用某一種。比較好的做法是,在程序代碼中,判斷設備是否支持多點觸摸,若不支持,可以顯示一個放大按鈕,而對於支持的,則在應用第一次啟動時,彈出一個Toast提示,告訴用戶可以多點觸摸從而放大圖片。
下面再說說應用界面布局的問題,來看下面兩個截圖。
這兩個應用同為Android下的游戲機模擬器,上面的圖是PS模擬器,可以看到虛擬按鍵的布局有些奇怪,特別是 L和R,一上一下非常不習慣。而右面的是GBA模擬器,可以看到它的按鍵中規中矩,用戶馬上就可以上手了。但是,從上手的角度來說,GBA模擬器的確簡單,但是從實用的角度來說,PS模擬器做得更好。為什麼呢?原因很簡單,PS模擬器利用到了整個屏幕,而且虛擬按鍵的布局,防止了兩只手打架,也防止了屏幕下半部分由於手指的原因完全不可見的問題。通過一段時間的習慣,PS 模擬器就可以被玩得很溜。而再看GBA模擬器,只利用到了一半的屏幕不說,而且還是縱向的,雙手操作時,兩只手很容易打架,相互干擾,要玩一些動作性稍強的游戲幾乎不可能。雖然看起來直觀易懂,但是這樣的UI,是會被用戶所舍棄的。
在移動平台上,到目前為止,用戶依然沒有固定的操作習慣,而軟體的開發人員要做的事情,就是把用戶往一個簡單、明快的操作體驗上引導,使他們更快的學會使用軟體,並且讓他們習慣、擅長某一種或幾種操作。從某種意義上來說,蘋果的設計人員手冊已經很好的解決了問題,iPad已經做到了中老年人也可以輕松上手,甚至連貓都會玩。但是至少目前為止,還沒有見到適用於Android的設計手冊,開發人員或是軟體廠商也都各按自己的理解去進行軟體的設計,用戶也被迫在使用不同的軟體時,適應不同的風格。
在未來為期不短的一段時間內,Android上應用程序的用戶體驗將成為一個主要的研究點,特別是游戲類應用。由於Android上的某些限制,開發人員較難實現像PSP游戲那樣的華麗效果,因此只能夠在游戲本身的游戲性上下足工夫。當然了,等Android手機的性能再次大幅提升,電池容量再大幅提升後,可能會出現可以匹敵PSP游戲的華麗游戲,只是目前不應當過分考慮這些。
在我以前的一些文章也曾提到過,為移動平台做開發,應該盡可能的考慮程序的執行效率而不是架構,因為移動平台本身通常不會有多好的配置,在有限的配置下實現性能最佳化是非常重要的。從另一種角度上說,iPhone 能夠用較低的配置來實現整機流暢運作,也是得益於較為嚴格地針對性優化,把硬體平台的性能完全發揮出來,這樣做得到的結果是,iPhone的整體性能,看起來反而比一些更高配置的手機要好一些。
最後,再簡單地說一下Android的開發與其他平台的開發有什麼異同。我們知道不同的開發方式將對最終的結果產生不同的影響。在以往的經驗中,各廠家的開發工具,都在往可視化方向發展,比如說微軟的 Visual Studio,一代比一代強大,可視化程度越來越高。而蘋果的Xcode也是一樣,它建議用戶完全使用可視化的方案來解決一個應用。這些固然很好,但是帶來的問題也不小。舉個簡單的例子,有一個 Windows Mobile 的應用,上面有一個 ListBox,而你正試圖為該 ListBox 添加一個圖標,並試圖按每一項的內容限定來改變文字顏色。能做到嗎?當然能,但是過程卻不簡單,你必須經歷復雜的自繪才能實現這一點。這也是常規的RAD開發中普遍遇到的問題,即開發人員不能方便地控制到應用的每一個細節。開發框架對API的封裝在某種程度上提高了開發的效率,但是另一種程度上,它屏蔽了太多的細節,而這些細節有可能就是開發人員所需要的。
而Android雖然也擁有可視的開發環境,但是它非常弱,第三方的RAD方案迄今為止也依然顯得虛弱無力,對於用慣了微軟等公司出品的高級RAD環境的人來說,可能會充滿了無奈,也可能充滿了鄙視,這種可視化算什麼呢?如果僅僅從開發人員的角度來看,有利也有弊,弊端很顯然是開發效率不夠高,而事實上,由於Android採用Java語言來進行開發,其開發效率本身就不會太高。而利的部分,可能是會被很多高級工程師所喜愛的,因為它是犧牲開發效率,來換取最大的可定製性的一個典範。也許有一些剛開始學習Android開發的朋友會覺得製作界面有種種的不便,但是只要深入地學習下去,就會覺得Android的界面實現方式是非常領先的。同樣舉出上面ListBox的例子,在Android下,就可以通過一組短小精悍的代碼來自定義ListItem和相關Adapter以實現。
我想優秀的開發人員是應該完全放棄RAD的,在目前的環境下,RAD幾乎沒有什麼作為,反而會成為應用分層的一個巨大的絆腳石。在RAD的環境下,要求一位開發人員對軟體的每一個部分都面面俱到,這怎麼可能呢?比如說軟體界面就是應該交由UI專員去設計,資料庫部分也應該交由相關的負責人去做,完全不可能由開發人員從頭到尾一個人搞定。如果哪個老闆真的僱用了一位超級開發人員來包辦一切,那麼除非那個人擁有100年的工作經驗,不然的話項目做死就是活該。我想Android的開發框架已經很好地說明了這個問題,程序資源(包括圖片、字元串、其他的外部數據等)和代碼完全分離,各部分人員各司其職,完成整個項目,每個部分的人員都不會有太大的壓力。並且,由於Android採用XML對界面進行描述,使得對界面的更換也變得容易,設計師可以設計出多套界面,不論是用於UI方案評估或是在實際應用中更換界面風格都很方便。這也是其他移動平台的開發所不具備的。

⑸ Android中: ContentValues 具體解釋 最好有個簡單的例子

DBhelper mydb =new DBhelper(getApplicationContext());
ContentValues cv =new ContentValues();
cv.put("name", et1.getText().toString());
cv.put("url", et2.getText().toString());
cv.put("desc",et3.getText().toString());
mydb.insert(cv);

例如資料庫的操作的時候需要ContentValues。
DBhelper是一個自定義的資料庫幫助class。

⑹ android的例子

android:layout_width="fill_parent"android:layout_height="fill_parent"
xmlns:android="schemas.android/apk/res/android"
android:orientation="vertical">
android:layout_width="fill_parent">
android:layout_width="wrap_content"android:layout_height="wrap_content">
android:layout_height="wrap_content"android:text="播放音頻">
android:layout_height="wrap_content"android:text="停止播放">

android:layout_width="fill_parent">
android:layout_width="fill_parent"android:layout_height="250px">
android:layout_width="wrap_content"android:layout_height="wrap_content">
android:layout_height="wrap_content"android:id="@+id/Button03"
android:text="播放視頻">
android:layout_height="wrap_content"android:text="停止播放"android:id="@+id/Button04">
packagecom.testMedia;
importjava.io.IOException;
importjava.util.Timer;
importjava.util.TimerTask;
importandroid.app.Activity;
importandroid.media.AudioManager;
importandroid.media.MediaPlayer;
importandroid.os.Bundle;
importandroid.view.SurfaceHolder;
importandroid.view.SurfaceView;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.SeekBar;
importandroid.widget.Toast;
{
/**.*/
privateSeekBarskb_audio=null;
privateButtonbtn_start_audio=null;
privateButtonbtn_stop_audio=null;
privateSeekBarskb_video=null;
privateButtonbtn_start_video=null;
privateButtonbtn_stop_video=null;
privateSurfaceViewsurfaceView;

⑺ 如何自學 Android 編程

如果你已經確定了學習Android的目標,那麼,應該提前做好哪些工作、先打下哪些基礎呢?
首先,你最好先熟悉一門編程語言,現在大學裡面和計算機相關的專業甚至理工類專業一般都會開設C語言課程,只是很多同學在大學期間並沒有好好學習,如果對它掌握的不太好或者很久沒用了,建議先從將其好好復習一下,將其基本的語法再好好回顧一下,最好能搭建一個環境來運行、調試它。如果沒有學過,不妨也提前學習一下,可以參考清華大學出版社出版的譚浩強老師的《C語言程序設計》,推薦這本書的原因,一是它已經經過了多年的考驗,應該說還是比較嚴謹的;其次就是大部分的高校所開設的C語言使用的教材都是用它作為教材,因此無論是購買還是借閱,都容易找到。另外,華清遠見網站上也有一些這方面的教學視頻,可以結合來看。
其次,如果你後續有志於游戲方面的開發,你最好具備一定的數據結構和演算法基礎知識。這一點是我在華清遠見的講台上,給學員們堅持強調的。雖然現代的高級編程語言中,其類庫中已經幫我們實現了大部分的數據結構,一般情況下,我們直接使用即可。但如果你能對其原理有所了解,當你需要在這些數據結構和演算法中間的時候,你可以能更加的清楚到底應該選擇那個數據結構或者演算法。另外,在圖形圖像處理上面,線性代數的作用也非常重要,如果能掌握一點這方面的基礎知識,無疑也會在後續的學習中如虎添翼。舉個例子,在Android中,有一個用於圖形變換的類Matrix,用起來稍有點難。其實它的理論基礎就是線性代數中的矩陣,如果你了解矩陣的基本演算法,這個類的使用可以說就易如反掌了。
第三,因為Android應用的開發語言用的是Java語言,並且在Android中也用到了Java核心類庫的大量的類,因此,在學習Android開發之前,可以先把Java基本語法和Java SE的基礎類庫好好學習一下,例如:Java中的IO、網路、線程、List、Map、Tree等數據結構。現在的大學里也有不少的院系開設了Java課程,教材和圖書也非常豐富,如果你所在的院系沒有開設,也可以從其他開設了這個專業的院系同學那裡借閱一下,並認真完成他們所布置的作業,爭取自己能動手編寫出一些簡單的Java應用。如果自己購買圖書,可以購買《Java核心技術,卷1(原書第8版)》這本圖書來學習。
第四,因為在Android中,會用到資料庫來存儲數據,因此,也可以提前對資料庫知識做相關的儲備。在Android所使用的SQLite中,其語法是遵循標準的SQL-92語法的(當然和企業級資料庫如Oracle等比較,功能上要弱很多),有條件的話,最好也能安裝一個資料庫來進行實際的操作。從易用性和資料完備性來說,建議大家使用Microsoft SQL Server或者MySQL就可以了。它們都是我們學習資料庫的好平台。另外,如果曾經學習過資料庫原理或者關系代數,那麼,在學習資料庫的過程中,也可以再好好地復習一下這些基礎知識,對我們理解資料庫大有裨益。
最後,我們結合華清遠見3G學院的「3G Android系統開發就業培訓班課程體系」來談談Android開發的學習方法。
Android是一個比較龐大的體系,從底層的Linux內核到上層的應用層,各部分的內容跨度也比較大。因此,一個好的學習方法對我們學習Android開發很重要。因此在華清遠見的課程體系設計中採取了循序漸進、將大目標分解成多個小目標,逐步達成對Android開發從應用層到底層系統及驅動開發全面掌握的目的。
例如,可以先從Android的應用開發開始,等到對應用掌握的比較熟悉了,開始慢慢閱讀一些Android 應用框架層的源代碼,然後再漸漸往下去了解Android的JNI、Libraries、Dalvik虛擬機、HAL層、硬體驅動、Linux內核、ARM技術體系架構等,雖然近期Intel宣稱要讓Intel晶元支持Android系統,但在可預見的時期內,在移動設備上,ARM的優勢應該還是不可撼動的。
具體來說,可以先通過在開發板上構建一個自己的Android系統,了解Android系統的整體架構和啟動過程,由此先對Android有一個初步的了解;接下來,學習Android的應用開發,在這里可以先學習Android的幾個主要組件、UI組件,先對Android應用開發有一個感性認識。在能夠熟練搭建用戶界面後,再逐漸來豐富應用的功能,例如:加上事件處理,使其能夠和用戶互動;加上數據存儲功能;加上聯網功能等等。在學完應用後,在此基礎上來學習游戲編程,先了解游戲設計的基本思路,然後開始從小的游戲、小的模塊開始做起,到最後能完成一個類似於現在熱門的《捕魚達人》這樣的游戲。在掌握了這些應用層級的內容後,可以去了解如何在Android應用中通過JNI去調用C/C++的介面,再往下學習Linux的內核和驅動開發如字元設備驅動、Flash設備驅動、網路設備驅動等等;再在此基礎上,去學習Android驅動開發、HAL(硬體抽象層)開發、ARM體系架構和指令等等內容,這樣,Android開發的整個體系就都貫穿起來了。
當然,因為時間有限,而底層部分的內容比較龐雜,因此,在真正去做這部分工作之前,我們只需要對其基本原理有所了解,做好相關知識的儲備,能夠根據老師的指導來完成相關的實驗。這樣在後續的工作中,就可以方便的往這方面發展,讓自己的事業更上一層樓。

⑻ android 的try catch 具體能處理什麼問題 簡單介紹 給個簡單的例子

如果沒有try的話,出現異常會導致程序崩潰。
try可以保證程序的正常運行下去
try{
int i = 1/0;
}catch(Exception e){
........
}
計算的話,如果除數為0,則會報錯,如果沒有try的話,程序直接崩潰。用try的話,則可以讓程序運行下去,並且輸出為什麼出錯!
try的話,配合log4j使用會對程序的日後維護幫助很大。
PS:不是原創,但希望能幫助你,我也是android新手,共同學習

⑼ 安卓開發,請給個由一個按鈕觸發另一個activity的簡單例子讓我學習學習!

private Button mButton2;

mButton2=(Button)findViewById(R.id.register);
mButton2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(Login.this,Register.class);
startActivity(i);
}
});
這樣就是個簡單的跳轉到register這個activity的方法

另一個回答者,他的答案貌似使用了extra傳值,不過他這個extra傳值只有 主頁面的onActivityResult,另一個頁面將數據放入extra的方法沒有寫

⑽ android 代碼布局簡單的例子

LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
linearLayout.setGravity(Gravity.CENTER_HORIZONTAL);

ImageButton news = new ImageButton(context);
news.setId(85);
news.setOnClickListener(this);
news.setBackgroundResource(R.drawable.news);
news.setLayoutParams(new LayoutParams(33, 33));

linearLayout.addView(news);

這段代碼就動態把一個ImageButton添加到一個LinearLayout中去了~

同時設定了VIEW的長寬背景布局方式等~

同理,刪除掉使用的方法例如:

XXX.removeViewAt(index)

index就是這個子view在父view中是第(index+1)個添加進去的(index從0開始算的)

先嘗試去修改下,再有不懂的請留言~

幫你網路的 大致就這樣 下面有參考資料http://..com/question/255392766.html

熱點內容
win7ftp用戶名和密碼設置 發布:2025-01-22 17:46:48 瀏覽:220
三表聯查的sql語句 發布:2025-01-22 17:27:13 瀏覽:418
安卓怎麼解壓分卷壓縮 發布:2025-01-22 17:24:59 瀏覽:721
歐姆龍plc編程語言 發布:2025-01-22 17:21:48 瀏覽:396
和值編程 發布:2025-01-22 17:20:07 瀏覽:518
微信青少年模式獨立密碼是什麼 發布:2025-01-22 16:52:06 瀏覽:589
騰訊雲伺服器怎麼購買 發布:2025-01-22 16:45:01 瀏覽:631
天貓怎麼上傳視頻 發布:2025-01-22 16:40:02 瀏覽:727
安卓如何把抖音評論換成黑色 發布:2025-01-22 16:30:57 瀏覽:702
連接池Java 發布:2025-01-22 16:28:27 瀏覽:260