1、android 知识点累积如何获取标题栏和状态栏高度1.获取状态栏高度:decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 于是可以算出状态栏的高度了。Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;2.获取标题栏高度:g
2、etWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();/statusBarHeight是上面所求的状态栏的高度int titleBarHeight = contentTop - statusBarHeight; -让EditTextView 不能输入的方法etNearbySearch.setFilters(new
3、InputFilter 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().setF
4、lags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); AndroidManifest.xml中这样写-设置控件是否显示的属性设置android 属性android:visibility此属性意思是此视图是否显示,例如RelativeLayout中android:visibility=gone其有三个属性:visible显示;invisible显示黑背景条;gone不显示在类中,可以设置其显示与否,setVisibility(View.GONE);不显示setVi
5、sibility(View.VISIBLE);显示-为了避免软键盘挡上输入框,可以试试设置或者-设置控件的宽高,用setlayoutparams()方法-做应用时,可能会需要动态改变控件的背景图片,如果仅仅是简单的点击,选中之类的事件,如果靠程序中写监听的代码就显得太麻烦了,在这种情况下,你可以使用selector动态改变控件背景1、在res/drawable目录下建一个handlebackground.xml文件,根据需要,不同的状态下建立不同的item,并对应相应的图片selector xmlns:android= 2、在构造layout是引用这个xmlnormalbackground.p
6、ng 为你要显示的前景图片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.通过按下手机上的MENU键,可以打开Options Menu。Options Menu最多只能在屏幕最下面显示6个菜单项,称为Icon Menu.如果添加了多于6个的菜单项,将通过More菜单项显示,这种称为Expanded Menu.当Opti
9、ons Menu第一次被打开时,系统将调用Activity的onCreateOptionsMenu(Menu menu)方法,在这个方法中可以通过配置一个XML文件,或者调用Menu的add()方法来添加你想要的Menu。Menu的add()方法将返回一个MenuItem对象,你用通过这个对象来配置一些其他属性。比如:icon,shortcut,intent。Menu的add()方法很多,要注意的是itemId这个参数,它的唯一性。当选择了一个Options Menu时,会调用onOptionsItemSelected(MenuItem item)方法。如果想修改Options Menu,需要
10、重写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; /* Handles item selections */ public boolean onOptionsItemSelec
11、ted(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代码 menu xmlns:android= 在onCreateOptionsMenu()方法中,我们这样写:Java代码 public boolean onCreateOptionsMenu(Menu menu) Menu
12、Inflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); return true; 2.Context Menu.它需要注册到某个View对象上,当长按这个View大概2秒时间,会出现这个Context Menu。为某个View注册Context Menu是用registerForContextMenu(View view)方法来实现。Context Menu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected用来处理选中的菜
13、单项。注意: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(0, DELETE_ID, 0, Delete); public boolean onContextItemSelected(MenuItem item) Adap
14、terContextMenuInfo 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(item); 注册这个Context Menu:registerForContextMenu(getListView(); 这里
15、的 getListView()是ListActivity的方法,它将返回一个ListView.记住任何一个View对象都可以注册一个Context Menu。3.Submenus public boolean onCreateOptionsMenu(Menu menu) boolean result = super.onCreateOptionsMenu(menu); SubMenu fileMenu = menu.addSubMenu(File); SubMenu editMenu = menu.addSubMenu(Edit); fileMenu.add(0,NEW_ID,0,new);
16、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; 4.Menu FeaturesMenu groups 菜单项分组的功能:在用Menu的add()方法时,通过参数groupId的设置可以实现分组。setGroupVisible()用来显示或者隐藏你的菜单组。setGroupEnabled()用来启用或者禁用你的菜单组。setGroupCheckable()用来设置
17、你的菜单项是否可选。 setGroupCheckable()方法有三个参数int group, boolean checkable, boolean exclusive。第一个参数是要设置的组,第二个参数是否可选,第三个参数为true表示单选,false表示多选。Shortcut keys 快捷键:我们还可以设置快捷键。使用setAlphabeticShortcut(char),setNumericShortcut(int),setShortcut(char,int)可以设置字符,数字,组合(字符+数字)键。注意:Context Menu不能添加快捷键。-点击查看活动规则TextView及其子
18、类,当字符内容太长显示不下时可以省略号代替未显示的字符;省略号可以在显示区域的起始,中间,结束位置,或者以跑马灯的方式显示文字(textview的状态为被选中)。其实现只需在xml中对textview的ellipsize属性做相应的设置即可。 android:ellipsize=start 省略号在开头 android:ellipsize=middle 省略号在中间 android:ellipsize=end 省略号在结尾 android:ellipsize=marquee 跑马灯显示-设置RadioButton的前面的图片,可定制的呵呵 RadioButton是可以自己定义button的显示的,我给的例子就不显示button-android listview的分割线可以改变颜色-保持屏幕唤醒状态方法 1: use PowerManager and WakeLockAndroidManifest.xml权限: 程序中的代码: PowerManager pm = (PowerManager) getSystemService(Con
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1