《Android面試寶典》學習筆記(第三章:組件)

Android支持哪些方式顯示富文本信息?

1,利用富文本標籤,類似於html標籤,如<b>,<font>,<img>等,不過不能直接作爲textview.settext的參數值,而應該將這些文本轉換爲charsequence對象。如果想要顯示圖片的時候,還需要實現p_w_picpathgetter接口

2,重寫ondraw

3,利用webview組件顯示html頁面

4,textview中顯示圖片還可以使用p_w_picpathspan對象,該對象用來封裝bitmap對象,並通過spannablestring對象封裝p_w_picpathspan對象,將其作爲settext的參數。


如何在TextView中實現超鏈接?

實例化一個ClickableSpan對象,並實現onClick方法。


如何爲文字設置背景色?

使用BackgroundColorSpan。


selector的用法?

http://blog.csdn.net/shakespeare001/article/details/7788400/


如何調整圖像的透明度?

先使用bitmap裝載圖像,Paint.setAlpha設置透明度,再用ondraw方法,把bitmap和paint作爲參數傳進去。


如何設置進度條顏色?

http://blog.csdn.net/catoop/article/details/39667841


如何實現垂直進度條?

自行繪製。


BaseAdapter類有哪些抽象方法?

getItem、getItemId、getCount、getView(int position, View convertView, ViewGroup parent)


如何設置ListView的快速滑塊?

ListView。setFastScrollEnabled(true)


ViewGroup有哪些子類?

Layout、GridView、Gallery、ListView


如何使容器內的組件可以水平和垂直滑動?

使用ScrollView,並在其中嵌套HorizontalScrollView。


靜態引用和動態引用的區別?

靜態引用將組件連同主程序一起封裝在編譯後的目標文件中;動態引用是指主程序和組件是分離的,組件可以單獨升級和卸載。


有哪些組件可以動態引用?

apk文件、jar文件、Javascript腳本、四大應用程序組件。


自定義可視組件有哪幾種方法?

擴展現有組件;組合多種組件;直接從view繼承。


四大應用程序組件可以封裝在jar文件中嗎?使用時要注意什麼?

可以。使用前要先在主程序的manifest.xml中註冊。


Android是否可以動態引用jar文件?

傳統的jar文件是基於JVM格式的,無法由Android應用程序動態調用。但jar文件中只要包含Dalvik虛擬機格式的二進制代碼就可以被Android動態調用。


如何判斷包含某個Activity action的Android應用程序是否安裝?
調用PackageManager.queryIntentActivities方法。


在Android中Java與Javascript如何交互?

使用WebView組件,並調用WebView.addJavaScriptInterface方法添加可以在Javascript中調用的Java方法。


NDK方法的命名規則?

假設NDK方法的Java類是mobile.android.HelloWorldJNI,在該類中實際訪問的本地方法名是process,返回值類型是String,沒有參數,則NDK方法定義如下:

jstring Java_mobile_android_HelloWorldJNI_process(JNIEnv *env, jobject obj)

其中JNIEnv*是NDK環境的對象指針,jobject表示調用當前NDK方法的Java對象。


如何讓Android Market顯示指定的程序以方便用戶下載?

Uri uri = Uei.parse("market://search?q=應用程序名稱");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent);


安裝apk程序的代碼?

String str = "/CanavaCancel.apk";

String fileName = Environment.getExternalStorageDirectory() + str;

Intent intent = new Intent(Intent.ACTION_VIEW);

 intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");

startActivity(intent);


Activity的生命週期?

347621596238419942633901667161718750.jpg


調用activity有哪幾種方法?

顯式調用:

Intent intent = new intent(this, MyActivity.class);

startActivity(intent);

隱式調用:

Intent intent = new intent("mobile.android.MYACTION");

startActivity(intent);


Activity之間如何傳遞數據?
可以通過Intent對象、靜態變量、剪切板和全局對象(繼承自android.app.Application的類)傳遞信息。


常用Intent有哪些?

http://blog.csdn.net/zlqqhs/article/details/8600690


如何將Activity變爲半透明的對話框?

http://blog.sina.com.cn/s/blog_5033827f0100xo9s.html


如何在activity顯示和關閉時設置動畫?

先在res/anim目錄中添加動畫,再用overridePendingTransition方法設置動畫效果。


如何接收廣播?

先編寫一個廣播接收器類,繼承Broadcast類,實現OnReceive方法,再在AndroidManifest中註冊。

如果它接受多個廣播,則使用intent.getAction方法判斷當前接收到的是哪一個廣播。


如何獲取短信內容?

實現一個ShortMessageReceiver,再在AndroidManifest中添加短信廣播action即可。


如何攔截來電?

http://blog.csdn.net/wangfayinn/article/details/8004023


如何攔截手機屏幕休眠和喚醒動作?

實現一個ScreenOnOffReceiver,再在註冊時添加Intent.ACTION_SCREEN_ON和Intent_SCREEN_OFF.


如何讓一個Activity在開機後自動顯示?

實現StartUpListener,並在manifest文件中添加intent.action.BOOT_COMPLETED.


如何發送廣播?

sendBroadcast(intent);


Service的生命週期?

http://www.cnblogs.com/charley_yang/archive/2011/01/09/1931043.html

24233205-ccefbc4a326048d79b111d05d1f8ff0

開發AIDL服務的步驟?

http://blog.csdn.net/stonecao/article/details/6425019

http://www.cnblogs.com/lipeil/archive/2012/08/27/2659330.html


AIDL支持哪些類型的數據?

基本類型、String和CharSequence、List和Map、AIDL自動生成的接口、實現android.os.Parcelable接口的類。


如何讀取聯繫人信息?

getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

要在manifest文件中設置如下的權限:

<uses-permission android:name="android.permission.READ_CONTACTS">


ContentProvider URI有哪幾部分組件?

1:content:// 2:authority 3:path 4:param


如何爲contentprovider添加訪問權限?

http://www.android100.org/html/201307/27/3806.html








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章