Android开发知识点总结_第1页
Android开发知识点总结_第2页
Android开发知识点总结_第3页
Android开发知识点总结_第4页
Android开发知识点总结_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

怎样获取标题栏和状态栏高度1.获取状态栏高度:decorView是window中最顶层view,能够从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法能够获取到程序显示区域,包含标题栏,但不包含状态栏。于是能够算出状态栏高度了。Rectframe=newRect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);intstatusBarHeight=frame.top;2.获取标题栏高度:getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到view就是程序不包含标题栏部分,然后就能够知道标题栏高度了。intcontentTop=getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();//statusBarHeight是上面所求状态栏高度inttitleBarHeight=contentTop-statusBarHeight;---------------------------------------------------------------------------------------------让EditTextView不能输入方法etNearbySearch.setFilters(newInputFilter[]{newInputFilter(){@OverridepublicCharSequencefilter(CharSequencesource,intstart,intend,Spanneddest,intdstart,intdend){returnsource.length()<1?dest.subSequence(dstart,dend):"";}}});---------------------------------------------------------------------------------------------全屏问题,在程序一加载时候就让它是全屏this.requestWindowFeature(Window.FEATURE_NO_TITLE);this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);AndroidManifest.xml中这么写<activityandroid:name=".TextButtonActivity"android:label="@string/app_name"android:theme="@android:style/Theme.NoTitleBar.Fullscreen">---------------------------------------------------------------------------------------------设置控件是否显示属性设置android属性android:visibility此属性意思是此视图是否显示,比如RelativeLayout中android:visibility="gone"其有三个属性:visible显示;invisible显示黑背景条;gone不显示在类中,能够设置其显示是否,setVisibility(View.GONE);不显示setVisibility(View.VISIBLE);显示---------------------------------------------------------------------------------------------为了防止软键盘挡上输入框,能够试试设置<activityandroid:windowSoftInputMode="stateVisible|adjustResize">或者<activityandroid:windowSoftInputMode="stateVisible|adjustPan">---------------------------------------------------------------------------------------------设置控件宽高,用setlayoutparams()方法---------------------------------------------------------------------------------------------做应用时,可能会需要动态改变控件背景图片,假如仅仅是简单点击,选中之类事件,假如靠程序中写监听代码就显得太麻烦了,在这种情况下,你能够使用selector动态改变控件背景1、在res/drawable目录下建一个handlebackground.xml文件,依照需要,不一样状态下建立不一样item,并对应对应图片<?xmlversion="1.0"encoding="UTF-8"?><selectorxmlns:android=""><itemandroid:state_pressed="true"android:drawable="@drawable/pressed_application_background_static"/><itemandroid:state_focused="true"android:state_enabled="true"android:state_window_focused="true"android:drawable="@drawable/focused_application_background_static"/><itemandroid:drawable="@android:color/transparent"/></selector>2、在结构layout是引用这个xml<ImageButtonandroid:id="@+id/imagebutton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/normalbackground"android:background="@drawable/handlebackground"></ImageButton>normalbackground.png为你要显示前景图片pressed_application_background_static.png为点击时背景(系统默认为淡黄色)focused_application_background_static.png为焦点停留时背景(系统默认为橙色)---------------------------------------------------------------------------------------------取得androidsdk版本,并设置动画效果intversion=Integer.valueOf(android.os.Build.VERSION.SDK);if(version>=5){overridePendingTransition(R.anim.zoomin,R.anim.zoomout);//此为自定义动画效果,下面两个为系统两个自定义动画效果XML文件,存放位置为:res/anim/1,动画进入效果:zoomin.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android=""android:interpolator="@android:anim/decelerate_interpolator"><scaleandroid:fromXScale="2.0"android:toXScale="1.0"android:fromYScale="2.0"android:toYScale="1.0"android:pivotX="50%p"android:pivotY="50%p"android:duration="@android:integer/config_mediumAnimTime"/></set>复制代码2,动画退出效果:zoomout.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android=""android:interpolator="@android:anim/decelerate_interpolator"android:zAdjustment="top"><scaleandroid:fromXScale="1.0"android:toXScale=".5"android:fromYScale="1.0"android:toYScale=".5"android:pivotX="50%p"android:pivotY="50%p"android:duration="@android:integer/config_mediumAnimTime"/><alphaandroid:fromAlpha="1.0"android:toAlpha="0"android:duration="@android:integer/config_mediumAnimTime"/></set>---------------------------------------------------------------------------------------------取得控件在屏幕或窗口内坐标int[]location=newint[2];view.getLocationInWindow(location);//获取在当前窗口内绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内绝对坐标location[0]--->x坐标,location[1]--->y坐标---------------------------------------------------------------------------------------------控件对齐那点事android:gravity属性是对该view内容限定.比如一个button上面text.你能够设置该text在view靠左,靠右等位置.该属性就干了这个.android:layout_gravity是用来设置该view相对与起父view位置.比如一个button在linearlayout里,你想把该button放在靠左靠右等位置就能够经过该属性设置.---------------------------------------------------------------------------------------------几个Menu使用说明1.OptionsMenu.经过按下手机上MENU键,能够打开OptionsMenu。OptionsMenu最多只能在屏幕最下面显示6个菜单项,称为IconMenu.假如添加了多于6个菜单项,将经过"More"菜单项显示,这种称为ExpandedMenu.当OptionsMenu第一次被打开时,系统将调用ActivityonCreateOptionsMenu(Menumenu)方法,在这个方法中能够经过配置一个XML文件,或者调用Menuadd()方法来添加你想要Menu。Menuadd()方法将返回一个MenuItem对象,你用经过这个对象来配置一些其余属性。比如:icon,shortcut,intent。Menuadd()方法很多,要注意是itemId这个参数,它唯一性。当选择了一个OptionsMenu时,会调用onOptionsItemSelected(MenuItemitem)方法。假如想修改OptionsMenu,需要重写onPrepareOptionsMenu()方法。方式一,用add()添加:/*Createsthemenuitems*/publicbooleanonCreateOptionsMenu(Menumenu){menu.add(0,MENU_NEW_GAME,0,"NewGame");menu.add(0,MENU_QUIT,0,"Quit").setIcon(R.drawable.menu_quit_icon);returntrue;}/*Handlesitemselections*/publicbooleanonOptionsItemSelected(MenuItemitem){switch(item.getItemId()){caseMENU_NEW_GAME:newGame();returntrue;caseMENU_QUIT:quit();returntrue;}returnfalse;}方式二,经过XML文件添加:在res/menu/下新建options_menu.xml文件:Xml代码<menuxmlns:android=""><itemandroid:id="@+id/new_game"android:title="NewGame"/><itemandroid:id="@+id/quit"android:title="Quit"/></menu>在onCreateOptionsMenu()方法中,我们这么写:Java代码publicbooleanonCreateOptionsMenu(Menumenu){MenuInflaterinflater=getMenuInflater();inflater.inflate(R.menu.options_menu,menu);returntrue;}2.ContextMenu.它需要注册到某个View对象上,当长按这个View大约2秒时间,会出现这个ContextMenu。为某个View注册ContextMenu是用registerForContextMenu(Viewview)方法来实现。ContextMenu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected用来处理选中菜单项。注意:ContextMenu不支持icons和shortcutkeys.Java代码publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuInfo){super.onCreateContextMenu(menu,v,menuInfo);menu.add(0,EDIT_ID,0,"Edit");menu.add(0,DELETE_ID,0,"Delete");}publicbooleanonContextItemSelected(MenuItemitem){AdapterContextMenuInfoinfo=(AdapterContextMenuInfo)item.getMenuInfo();switch(item.getItemId()){caseEDIT_ID:editNote(info.id);returntrue;caseDELETE_ID:deleteNote(info.id);returntrue;default:returnsuper.onContextItemSelected(item);}}注册这个ContextMenu:registerForContextMenu(getListView());这里getListView()是ListActivity方法,它将返回一个ListView.记住任何一个View对象都能够注册一个ContextMenu。3.SubmenuspublicbooleanonCreateOptionsMenu(Menumenu){booleanresult=super.onCreateOptionsMenu(menu);SubMenufileMenu=menu.addSubMenu("File");SubMenueditMenu=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");returnresult;}4.MenuFeaturesMenugroups菜单项分组功效:在用Menuadd()方法时,经过参数groupId设置能够实现分组。setGroupVisible()用来显示或者隐藏你菜单组。setGroupEnabled()用来启用或者禁用你菜单组。setGroupCheckable()用来设置你菜单项是否可选。setGroupCheckable()方法有三个参数intgroup,booleancheckable,booleanexclusive。第一个参数是要设置组,第二个参数是否可选,第三个参数为true表示单项选择,false表示多项选择。Shortcutkeys快捷键:我们还能够设置快捷键。使用setAlphabeticShortcut(char),setNumericShortcut(int),setShortcut(char,int)能够设置字符,数字,组合(字符+数字)键。注意:ContextMenu不能添加紧捷键。---------------------------------------------------------------------------------------------点击查看活动规则TextView及其子类,当字符内容太长显示不下时能够省略号代替未显示字符;省略号能够在显示区域起始,中间,结束位置,或者以跑马灯方式显示文字(textview状态为被选中)。其实现只需在xml中对textviewellipsize属性做对应设置即可。android:ellipsize="start"省略号在开头android:ellipsize="middle"省略号在中间android:ellipsize="end"省略号在结尾android:ellipsize="marquee"跑马灯显示---------------------------------------------------------------------------------------------设置RadioButton前面图片,可定制呵呵<RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:checkedButton="@+id/lunch"android:id="@+id/menu"><RadioButtonandroid:text="@string/radio_group_1_breakfast"android:id="@+id/breakfast"android:button="@null"//自己找一个图片就能够/>RadioButton是能够自己定义button显示,我给例子就不显示button---------------------------------------------------------------------------------------------androidlistview分割线能够改变颜色<ListViewandroid:id="@+id/android:list"android:layout_width="wrap_content"android:layout_height="wrap_content"android:divider="#FFCC00"android:dividerHeight="4px"/>---------------------------------------------------------------------------------------------保持屏幕唤醒状态方法1:usePowerManagerandWakeLockAndroidManifest.xml权限:<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>程序中代码:PowerManagerpm=(PowerManager)getSystemService(Context.POWER_SERVICE);PowerManager.WakeLockmWakeLock=pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,"MyTag");//inonResume()callmWakeLock.acquire();...//inonPause()callmWakeLock.release();方法2:usethewindowflagFLAG_KEEP_SCREEN_ON把下面代码加入到程序onCreate方法中:@OverrideprotectedvoidonCreate(Bundleicicle){super.onCreate(icicle);//SetkeepscreenongetWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);}---------------------------------------------------------------------------------------------提醒用户输入有问题直接上代码Animationanimation=AnimationUtils.loadAnimation(this,R.anim.shake);EditTexteditText=(EditText)findViewById(R.id.edittext);editText.startAnimation(animation);里面面fromXDelta,toXDelta是表示x轴方向移动距离shake.xml:<translatexmlns:android=""android:fromXDelta="0"android:toXDelta="30"android:duration="1000"android:interpolator="@anim/cycle_interpolator"/>cycleInterpolator.xml文件:<cycleInterpolatorxmlns:android=""android:cycles="3"/>抖动3次---------------------------------------------------------------------------------------------TextView动态设置背景色et.setBackgroundResource(R.color.white);---------------------------------------------------------------------------------------------预防ListView滚动时候背景闪烁,需加上android:cacheColorHint="#00000000"假如设置了listviewandroid:background="@drawable/background"就要加上android:cacheColorHint="#00000000"---------------------------------------------------------------------------------------------经过添加一个id为android:emptyTextView,当ListView里面没有data时候,就会显示TextView内容。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android=""android:layout_width="wrap_content"android:layout_height="wrap_content"><ListViewandroid:id="@id/android:list"android:layout_width="fill_parent"android:layout_height="fill_parent"/><TextViewandroid:id="@id/android:empty"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="对不起,没有数据显示"/></LinearLayout>需要注意是,ListViewid,使用是"@id/android:list",即系统默认id,而紧接其后TextView,使用id也是系统默认,即"@id/android:empty"。---------------------------------------------------------------------------------------------自定义控件单行文本跑马灯控件importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.os.Parcel;importandroid.os.Parcelable;importandroid.util.AttributeSet;importandroid.view.Display;importandroid.view.View;importandroid.view.WindowManager;importandroid.view.View.OnClickListener;importandroid.widget.TextView;/***//****TODO单行文本跑马灯控件**@authortianlu*@version1.0*CreateAt:-2-16下午09:35:03*/publicclassAutoScrollTextViewextendsTextViewimplementsOnClickListener{publicfinalstaticStringTAG=AutoScrollTextView.class.getSimpleName();privatefloattextLength=0f;//文本长度privatefloatviewWidth=0f;privatefloatstep=0f;//文字横坐标privatefloaty=0f;//文字纵坐标privatefloattemp_view_plus_text_length=0.0f;//用于计算暂时变量privatefloattemp_view_plus_two_text_length=0.0f;//用于计算暂时变量publicbooleanisStarting=false;//是否开始滚动privatePaintpaint=null;//绘图样式privateStringtext="";//文本内容publicAutoScrollTextView(Contextcontext){super(context);initView();}publicAutoScrollTextView(Contextcontext,AttributeSetattrs){super(context,attrs);initView();}publicAutoScrollTextView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);initView();}/***//***初始化控件*/privatevoidinitView(){setOnClickListener(this);}/***//***文本初始化,每次更改文本内容或者文本效果等之后都需要重新初始化一下*/publicvoidinit(WindowManagerwindowManager){paint=getPaint();text=getText().toString();textLength=paint.measureText(text);viewWidth=getWidth();if(viewWidth==0){if(windowManager!=null){Displaydisplay=windowManager.getDefaultDisplay();viewWidth=display.getWidth();}}step=textLength;temp_view_plus_text_length=viewWidth+textLength;temp_view_plus_two_text_length=viewWidth+textLength*2;y=getTextSize()+getPaddingTop();}@OverridepublicParcelableonSaveInstanceState(){ParcelablesuperState=super.onSaveInstanceState();SavedStatess=newSavedState(superState);ss.step=step;ss.isStarting=isStarting;returnss;}@OverridepublicvoidonRestoreInstanceState(Parcelablestate){if(!(stateinstanceofSavedState)){super.onRestoreInstanceState(state);return;}SavedStatess=(SavedState)state;super.onRestoreInstanceState(ss.getSuperState());step=ss.step;isStarting=ss.isStarting;}publicstaticclassSavedStateextendsBaseSavedState{publicbooleanisStarting=false;publicfloatstep=0.0f;SavedState(ParcelablesuperState){super(superState);}@OverridepublicvoidwriteToParcel(Parcelout,intflags){super.writeToParcel(out,flags);out.writeBooleanArray(newboolean[]{isStarting});out.writeFloat(step);}publicstaticfinalParcelable.Creator<SavedState>CREATOR=newParcelable.Creator<SavedState>(){publicSavedState[]newArray(intsize){returnnewSavedState[size];}@OverridepublicSavedStatecreateFromParcel(Parcelin){returnnewSavedState(in);}};privateSavedState(Parcelin){super(in);boolean[]b=null;in.readBooleanArray(b);if(b!=null&&b.length>0)isStarting=b[0];step=in.readFloat();}}/***//***开始滚动*/publicvoidstartScroll(){isStarting=true;invalidate();}/***//***停顿滚动*/publicvoidstopScroll(){isStarting=false;invalidate();}@OverridepublicvoidonDraw(Canvascanvas){canvas.drawText(text,temp_view_plus_text_length-step,y,paint);if(!isStarting){return;}step+=0.5;if(step>temp_view_plus_two_text_length)step=textLength;invalidate();}@OverridepublicvoidonClick(Viewv){if(isStarting)stopScroll();elsestartScroll();}}实现了宽度判断,文本自动滚动及开始和停顿滚动等功效。在UIxml中配置以下:<cn.tigertian.ui.AutoScrollTextViewandroid:id="@+id/TextViewNotice"android:layout_height="30px"android:layout_width="fill_parent"android:text="@string/test_notice_1"android:textColor="#000"android:inputType="text"android:background="#EEE"android:textSize="20px"></cn.tigertian.ui.AutoScrollTextView>在Activity中使用方法以下://开启公告滚动条autoScrollTextView=(AutoScrollTextView)findViewById(R.id.TextViewNotice);autoScrollTextView.init(getWindowManager());autoScrollTextView.startScroll();假如想改变跑马灯文字内容或者文字效果,则在调用完setText方法之后,需要再调用一下init(WindowManagerwindowManager)方法,重新进行初始化和相关参数计算。---------------------------------------------------------------------------------------------大约意思是。@和?都是用来引用其余已经定义好资源。@引用是之前定义好资源当前项目或者androidframework里。而?则是引用当前加载样式文件里。意思就是说你在xml里某行定义了一个资源,在下面某行需要引用这个资源时用?即可---------------------------------------------------------------------------------------------TabHost两种实现方式文章分类:Java编程第一个:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义详细Tab内容布局就行了.xml布局:Java代码<FrameLayoutxmlns:android=""android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:id="@+id/widget_layout_Blue"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><EditTextandroid:id="@+id/widget34"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText"android:textSize="18sp"></EditText><Buttonandroid:id="@+id/widget30"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"></Button></LinearLayout><LinearLayoutandroid:id="@+id/widget_layout_red"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><AnalogClockandroid:id="@+id/widget36"android:layout_width="wrap_content"android:layout_height="wrap_content"></AnalogClock></LinearLayout><LinearLayoutandroid:id="@+id/widget_layout_green"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><RadioGroupandroid:id="@+id/widget43"android:layout_width="166px"android:layout_height="98px"android:orientation="vertical"><RadioButtonandroid:id="@+id/widget44"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="RadioButton"></RadioButton><RadioButtonandroid:id="@+id/widget45"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="RadioButton"></RadioButton></RadioGroup></LinearLayout></FrameLayout>java代码:super.onCreate(savedInstanceState);myTabhost=this.getTabHost();//getTabhostLayoutInflater.from(this).inflate(R.layout.main,myTabhost.getTabContentView(),true);myTabhost.setBackgroundColor(Color.argb(150,22,70,150));myTabhost.addTab(myTabhost.newTabSpec("One")//makeanewTab.setIndicator("A")//settheTitleandIcon.setContent(R.id.widget_layout_Blue));//setthelayoutmyTabhost.addTab(myTabhost.newTabSpec("Two")//makeanewTab.setIndicator("B",getResources().getDrawable(R.drawable.mumule))//settheTitleandIcon.setContent(R.id.widget_layout_green));//setthelayoutmyTabhost.addTab(myTabhost.newTabSpec("Three")//makeanewTab.setIndicator("C",getResources().getDrawable(R.drawable.notepad))//settheTitleandIcon.setContent(R.id.widget_layout_red));<FrameLayoutxmlns:android="" android:layout_width="fill_parent"android:layout_height="fill_parent"> <LinearLayoutandroid:id="@+id/widget_layout_Blue" android:layout_width="fill_parent"android:layout_height="fill_parent" android:orientation="vertical"> <EditTextandroid:id="@+id/widget34"android:layout_width="fill_parent" android:layout_height="wrap_content"android:text="EditText" android:textSize="18sp"> </EditText> <Buttonandroid:id="@+id/widget30"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="Button"> </Button> </LinearLayout> <LinearLayoutandroid:id="@+id/widget_layout_red" android:layout_width="fill_parent"android:layout_height="fill_parent" android:orientation="vertical"> <AnalogClockandroid:id="@+id/widget36" android:layout_width="wrap_content"android:layout_height="wrap_content"> </AnalogClock> </LinearLayout> <LinearLayoutandroid:id="@+id/widget_layout_green" android:layout_width="fill_parent"android:layout_height="fill_parent" android:orientation="vertical"> <RadioGroupandroid:id="@+id/widget43" android:layout_width="166px"android:layout_height="98px" android:orientation="vertical"> <RadioButtonandroid:id="@+id/widget44" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="RadioButton"> </RadioButton> <RadioButtonandroid:id="@+id/widget45" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="RadioButton"> </RadioButton> </RadioGroup> </LinearLayout></FrameLayout>java代码:super.onCreate(savedInstanceState); myTabhost=this.getTabHost(); //getTabhost LayoutInflater.from(this).inflate(R.layout.main,myTabhost.getTabContentView(),true); myTabhost.setBackgroundColor(Color.argb(150,22,70,150)); myTabhost .addTab(myTabhost.newTabSpec("One")//makeanewTab .setIndicator("A") //settheTitleandIcon .setContent(R.id.widget_layout_Blue)); //setthelayout myTabhost .addTab(myTabhost.newTabSpec("Two")//makeanewTab .setIndicator("B", getResources().getDrawable(R.drawable.mumule)) //settheTitleandIcon .setContent(R.id.widget_layout_green)); //setthelayout myTabhost .addTab(myTabhost.newTabSpec("Three")//makeanewTab .setIndicator("C", getResources().getDrawable(R.drawable.notepad)) //settheTitleandIcon .setContent(R.id.widget_layout_red));第二种:不用继承TabActivity,在布局文件中定义TabHost即可,不过TabWidgetid必须是@android:id/tabs,FrameLayoutid必须是@android:id/tabcontent。TabHostid能够自定义.xml布局:Java代码<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android=""android:id="@+id/hometabs"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TabHostandroid:id="@+id/tabhost"android:layout_width="wrap_content"android:layout_height="wrap_content"><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TabWidgetandroid:id="@android:id/tabs"android:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"></TabWidget><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/view1"android:layout_width="fill_parent"android:layout_height="fill_parent"/><TextViewandroid:id="@+id/view2"android:layout_width="fill_parent"android:layout_height="fill_parent"/><TextViewandroid:id="@+id/view3"android:layout_width="fill_parent"android:layout_height="fill_parent"/></FrameLayout></LinearLayout></TabHost></LinearLayout>java代码:protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.hometabs);TabHosttabHost=(TabHost)findViewById(R.id.tabhost);tabHost.setup();TabWidgettabWidget=tabHost.getTabWidget();tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1",getResources().getDrawable(R.drawable.mumule)).setContent(R.id.view1));tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3").setContent(R.id.view3));tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2").setContent(R.id.view2));finalinttabs=tabWidget.getChildCount();Log.i(TAG,"***tabWidget.getChildCount():"+tabs);finalinttabWidth=90;finalinttabHeight=45;for(inti=0;i<tabs;i++){/*finalViewview=tabWidget.getChildAt(i);view.getLayoutParams().width=tabWidth;view.getLayoutParams().height=tabHeight;finalTextViewtv=(TextView)view.findViewById(android.R.id.title);tv.setTextColor(this.getResources().getColorStateList(android.R.color.black));MarginLayoutParamstvMLP=(MarginLayoutParams)tv.getLayoutParams();tvMLP.bottomMargin=8;*/}}---------------------------------------------------------------------------------------------TextView显示图片和文字TextViewtext=(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论