2022年Android开发知识点总结[参 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年Android开发知识点总结[参 .pdf》由会员分享,可在线阅读,更多相关《2022年Android开发知识点总结[参 .pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1 页/共 30 页如何获取标题栏和状态栏高度1.获取状态栏高度:decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。于是可以算出状态栏的高度了。Rect frame=new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight=frame.top;2.获取标题栏高度:getWind
2、ow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view 就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。int contentTop=getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();/statusBarHeight 是上面所求的状态栏的高度int titleBarHeight=contentTop-statusBarHeight;-让 EditTextView 不能输入的方法etNearbySearch.setFilters(new InputFilte
3、r new InputFilter()Override public CharSequence filter(CharSequence source,int start,int end,Spanned dest,int dstart,int dend)return source.length()1?dest.subSequence(dstart,dend):;);-全屏问题,在程序一加载的时候就让它是全屏this.requestWindowFeature(Window.FEATURE_NO_TITLE);this.getWindow().setFlags(WindowManager.Layou
4、tParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);AndroidManifest.xml中这样写-设置控件是否显示的属性设置android 属性 android:visibility 此属性意思是此视图是否显示,例如RelativeLayout 中 android:visibility=gone 其有三个属性:visible 显示;invisible 显示黑背景条;gone 不显示在类中,可以设置其显示与否,setVisibility(View.GONE);不显示setVisibility(View.VISI
5、BLE);显示名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 30 页 -第 2 页/共 30 页-为了避免软键盘挡上输入框,可以试试设置或者-设置控件的宽高,用setlayoutparams()方法-做应用时,可能会需要动态改变控件的背景图片,如果仅仅是简单的点击,选中之类的事件,如果靠程序中写监听的代码就显得太麻烦了,在这种情况下,你可以使用selector 动态改变控件背景1、在 res/drawable 目录下建一个handlebackground.xml 文件,根据需要,不同的状态下建立不同的item,并对应相应的图片 2、在构造layout 是引用这个xml norm
6、albackground.png 为你要显示的前景图片pressed_application_background_static.png 为点击时的背景(系统默认为淡黄色)focused_application_background_static.png 为焦点停留时的背景(系统默认为橙色)-取得 androidsdk 的版本,并设置动画效果int version=Integer.valueOf(android.os.Build.VERSION.SDK);if(version=5)overridePendingTransition(R.anim.zoomin,R.anim.zoomout);/
7、此为自定义的动画效果,下面两个为系统的两个自定义的动画效果XML 文件,存放位置为:res/anim/1,动画进入效果:zoomin.xml 复制代码 2,动画退出效果:zoomout.xml -获得控件在屏幕或窗口内的坐标int location=new int2;view.getLocationInWindow(location);/获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);/获取在整个屏幕内的绝对坐标location 0-x 坐标,location 1-y 坐标-控件对齐那点事android:gravity属性是对该view 内容的限
8、定比如一个button 上面的text.你可以设置该text 在 view的靠左,靠右等位置该属性就干了这个android:layout_gravity是用来设置该view 相对与起父view 的位置比如一个button 在 linearlayout 里,你想把该 button 放在靠左靠右等位置就可以通过该属性设置-几种 Menu 的使用说明1.Options Menu.名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 30 页 -第 4 页/共 30 页通过按下手机上的MENU 键,可以打开Options Menu。Options Menu 最多只能在屏幕最下面显示6 个菜单项
9、,称为Icon Menu.如果添加了多于6 个的菜单项,将通过More 菜单项显示,这种称为Expanded Menu.当 Options Menu 第一次被打开时,系统将调用Activity 的 onCreateOptionsMenu(Menu menu)方法,在这个方法中可以通过配置一个XML 文件,或者调用Menu 的 add()方法来添加你想要的Menu。Menu 的 add()方法将返回一个MenuItem 对象,你用通过这个对象来配置一些其他属性。比如:icon,shortcut,intent。Menu的 add()方法很多,要注意的是itemId 这个参数,它的唯一性。当选择了一
10、个Options Menu时,会调用onOptionsItemSelected(MenuItem item)方法。如果想修改Options Menu,需要重写onPrepareOptionsMenu()方法。方式一,用add()添加:/*Creates the menu items*/public boolean onCreateOptionsMenu(Menu menu)menu.add(0,MENU_NEW_GAME,0,New Game);menu.add(0,MENU_QUIT,0,Quit).setIcon(R.drawable.menu_quit_icon);return true
11、;/*Handles item selections*/public boolean onOptionsItemSelected(MenuItem item)switch(item.getItemId()case MENU_NEW_GAME:newGame();return true;case MENU_QUIT:quit();return true;return false;方式二,通过XML 文件添加:在 res/menu/下新建 options_menu.xml 文件:Xml 代码 在 onCreateOptionsMenu()方法中,我们这样写:Java代码public boolean
12、 onCreateOptionsMenu(Menu menu)MenuInflater inflater=getMenuInflater();inflater.inflate(R.menu.options_menu,menu);return true;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 30 页 -第 5 页/共 30 页2.Context Menu.它需要注册到某个View 对象上,当长按这个View 大概 2 秒时间,会出现这个Context Menu。为某个View注册 Context Menu 是用 registerForContextMenu(View vi
13、ew)方法来实现。Context Menu 在显示前都会调用onCreateContextMenu 来生成 menu。onContextItemSelected 用来处理选中的菜单项。注意:Context Menu 不支持 icons 和 shortcut keys.Java代码public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo)super.onCreateContextMenu(menu,v,menuInfo);menu.add(0,EDIT_ID,0,Edit);menu.add(
14、0,DELETE_ID,0,Delete);public boolean onContextItemSelected(MenuItem item)AdapterContextMenuInfo info=(AdapterContextMenuInfo)item.getMenuInfo();switch(item.getItemId()case EDIT_ID:editNote(info.id);return true;case DELETE_ID:deleteNote(info.id);return true;default:return super.onContextItemSelected(
15、item);注册这个Context Menu:registerForContextMenu(getListView();这里的getListView()是 ListActivity 的方法,它将返回一个ListView.记住任何一个View 对象都可以注册一个Context Menu。3.Submenus public boolean onCreateOptionsMenu(Menu menu)boolean result=super.onCreateOptionsMenu(menu);SubMenu fileMenu=menu.addSubMenu(File);SubMenu editMen
16、u=menu.addSubMenu(Edit);fileMenu.add(0,NEW_ID,0,new);fileMenu.add(0,OPEN_ID,0,open);fileMenu.add(0,SAV_ID,0,save);editMenu.add(0,UNDO_ID,0,undo);editMenu.add(0,REDO_ID,0,redo);return result;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 30 页 -第 6 页/共 30 页4.Menu Features Menu groups 菜单项分组的功能:在用 Menu 的 add()方法时,通过参数g
17、roupId 的设置可以实现分组。setGroupVisible()用来显示或者隐藏你的菜单组。setGroupEnabled()用来启用或者禁用你的菜单组。setGroupCheckable()用来设置你的菜单项是否可选。setGroupCheckable()方法有三个参数int group,boolean checkable,boolean exclusive。第一个参数是要设置的组,第二个参数是否可选,第三个参数为true 表示单选,false 表示多选。Shortcut keys 快捷键:我们还可以设置快捷键。使用setAlphabeticShortcut(char),setNumer
18、icShortcut(int),setShortcut(char,int)可以设置字符,数字,组合(字符+数字)键。注意:Context Menu 不能添加快捷键。-点击查看活动规则TextView 及其子类,当字符内容太长显示不下时可以省略号代替未显示的字符;省略号可以在显示区域的起始,中间,结束位置,或者以跑马灯的方式显示文字(textview 的状态为被选中)。其实现只需在xml 中对 textview 的 ellipsize 属性做相应的设置即可。android:ellipsize=start 省略号在开头android:ellipsize=middle 省略号在中间android:e
19、llipsize=end 省略号在结尾android:ellipsize=marquee 跑马灯显示-设置 RadioButton 的前面的图片,可定制的呵呵 RadioButton 是可以自己定义button 的显示的,我给的例子就不显示button-android listview 的分割线可以改变颜色-保持屏幕唤醒状态方法1:use PowerManager and WakeLockAndroidManifest.xml权限:程序中的代码:PowerManager pm=(PowerManager)getSystemService(Context.POWER_SERVICE);Power
20、Manager.WakeLock mWakeLock=pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,My Tag);/in onResume()call mWakeLock.acquire();名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 30 页 -第 7 页/共 30 页./in onPause()call mWakeLock.release();方法2:use the window flag FLAG_KEEP_SCREEN_ON 把下面的代码加入到程序onCreate 方法中:Override protected vo
21、id onCreate(Bundle icicle)super.onCreate(icicle);/Set keep screen on getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);-提醒用户输入有问题直接上代码Animation animation=AnimationUtils.loadAnimation(this,R.anim.shake);EditText editText=(EditText)findViewById(R.id.edittext);editText.startAnimation
22、(animation);里面面的fromXDelta,toXDelta 是表示 x 轴方向的移动距离shake.xml:cycleInterpolator.xml 文件:抖动 3 次-TextView 动态设置背景色et.setBackgroundResource(R.color.white);-防止 ListView 滚动的时候背景闪烁,需加上android:cacheColorHint=#00000000 如果设置了listview 的 android:background=drawable/background 就要加上android:cacheColorHint=#00000000-通
23、过添加一个id 为 android:empty 的 TextView,当 ListView 里面没有data 的时候,就会显示TextView 的内容。需要注意的是,ListView 的 id,使用的是 id/android:list,即系统默认的id,而紧接其后的TextView,使用的 id 也是系统默认的,即id/android:empty。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 30 页 -第 8 页/共 30 页-自定义控件单行文本跑马灯控件import android.content.Context;import android.graphics.Canvas
24、;import android.graphics.Paint;import android.os.Parcel;import android.os.Parcelable;import android.util.AttributeSet;import android.view.Display;import android.view.View;import android.view.WindowManager;import android.view.View.OnClickListener;import android.widget.TextView;/*/*TODO 单行文本跑马灯控件*auth
25、or tianlu*version 1.0*Create At:2010-2-16 下午 09:35:03*/public class AutoScrollTextView extends TextView implements OnClickListener public final static String TAG=AutoScrollTextView.class.getSimpleName();private float textLength=0f;/文本长度private float viewWidth=0f;private float step=0f;/文字的横坐标private
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Android开发知识点总结参 2022 Android 开发 知识点 总结
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内