《Android面试宝典》学习笔记(第三章:组件)

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

1,利用富文本标签,类似于html标签,如<b>,<font>,<img>等,不过不能直接作为textview.settext的参数值,而应该将这些文本转换为charsequence对象。如果想要显示图片的时候,还需要实现imagegetter接口

2,重写ondraw

3,利用webview组件显示html页面

4,textview中显示图片还可以使用imagespan对象,该对象用来封装bitmap对象,并通过spannablestring对象封装imagespan对象,将其作为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








你可能感兴趣的:(android,面试,组建)