android学习笔记郁闷的是Andriod开发网站无法访问不知道需要_第1页
android学习笔记郁闷的是Andriod开发网站无法访问不知道需要_第2页
android学习笔记郁闷的是Andriod开发网站无法访问不知道需要_第3页
android学习笔记郁闷的是Andriod开发网站无法访问不知道需要_第4页
android学习笔记郁闷的是Andriod开发网站无法访问不知道需要_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

郁闷的是Andriod的开发dev 是无法。不知道为什么?需要./index.html,虽然慢点,但是至少可以访问,/这个站点比较快。在Android拥戴者的奇特世界观中有个很Android:开源的Linux+的封闭软件+私有的基带+运营商锁定=开放的:开源的BSD+苹果的闭源软件+私有的基带+运营商锁定=封闭的苹果 (开发者只需支付 客得到物美价廉的商品。(开发者需每年支付99美金)止他们在每部、每台电视和PC上推广开源而自由的文化。:!如此的不酷以至于每个人都在用。他们认为这个公司应该运营一切,除非竞争者他们在开放的市场将、电视和电脑推销给每一个人。在verycd上面可以的一个,不错,推荐一下这是一张给出的著名的图,Andriod的Architechture。下面有些内容可能不完全理解,可否用于建立app。ApplicationFramework:提供一个开放的开发平台。开发者可以完全,也是Andriod上层应ViewUIlists,gridstextboxesbuttons,包括嵌入webNotificationManager:允许应用将用户的警告星系显示在statusbarActivityManager:管理应用的生命周期并提供一个通用的浏览的backstackSystemClibrary-Csystemlibrary(libc),这个对于做嵌入系统的交叉编译工具链都是非MediaLibraries-基于Packet'sOpenCORE,支持yback和,支持多种音格式和静态图形格式,包括MPEG4,H.264,MP3,AAC,AMR,JPG,andPNGSurfaceManager-2D3D webbrowserSGL-theunderlying2Dgraphics3Dlibraries-基于OpenGLES1.0APIs;使用包括硬件3D加速,以及highlyoptimized3DsoftwareTypebitmapandvectorfontrendering(字体渲染-apowerfulandlightweightrelationaldatabaseAndroidRuntime:就是著名JAVA的runtime:CoreLib包括常用的类库以及自己为手持设备开发的Dalvik虚拟机。其执行文件的格式为.dev。具体,可以阅读./guide/basics/what-is-android.html。其他可以看到的源代码,,1、安装所需的环境,J2SEJDK和作为IDE$sudoapt-getinstallsun-java6-jdkeclipse-2、和安装Andriod的SDK从./sdk/index.html中android-sdk_r10-linux_x86.tgz。解压后,执行里面tools/andriod命令:$tools/andriod。通过这个工具来Andriod的SDK,我们会在tforms/的路径下看到不3、在Eclipse中安装和配置在./sdk/eclipse-adt.html#installing有详细的说明。步骤如下1Help- ->OK->点上checkbox,Next->Next->AcceptLicense左边边框的SDKAVD的管理器,点击进去,可以配置我们的虚拟设备,点击New增加一个,下面两图,左图是增加后,点击Edit查看的配置,右图是选择虚拟机,进行打开Start后Andriod虚拟机的截图:Window->Preferences->General->Apprearance->ColorsandFonts->Java->JavaEditorTextFont(...)->在此次,我们先创建一 1、创建project:FileNewProjectAndriodAndriod2、如图填入poject信息: location采用了标准的namespace的方式。MinSDKVersionAPI7Andriod2.1的平台上跑,但是如果我们在BuildTarget中选择了2.2,不能保证则会2.1的平台上跑。androidcreateproject oandroid-- oAndroid--path<path-to-your-project>/ o,Andriod例子在 packagecom.wei.learning. importandroid.app.Activity;importimportandroid.widget.TextViewEclipse中可以简单采用Shift+Ctrl+O可以自动根据内容生成所需要的import的packagepublicclassoAndriodextendsActivity //一个Activity是实体用于处理用户操作,一个映用可以多个分割activities,但同一时刻用户主能与其中一/**CalledwhentheactivityisfirstOnCreate()用于初始化和UI的建立。*/publicvoidonCreate(Bundle{内容,最后使用setcontentView()来将tv对象防止在activityUI中。*/ o,Andriod!");}}/**......*/注释若干行,并写入javadoc文档,命令行为:javadoc-d文档存放 -author-version源文件名.java,在Eclipse中Porject->GenerateJavadoc...在/***/里面是可以使用HTML的,例如<li>,<br>等等。可以在类,方法之前加入注释说明。例子如下@param@return@author标明开发该类模块的作者@version标明该类模块的版本@see参考转向,也就是相关@param对方法中某参数的说明@return对方法返回值的说明@exception@author@versionRun>Run,或者直接按三角图标,选择”AndriodApplication2.1 gen/res/assets/perties 有类似的文件。R相当于resourse。放入project所需的内容,例如我们res/中加入某些资源,例如一个图标,会在gen/R.java中生成一个IDassets下的资源将不会,需要通过路径来进行。res/drawable/中用于存放image,对于图标,提供h,m,l三个分辨率,以适用不同分在res/layout/下的xml文件,用于管理我们的UI,对于一个复杂的UI,如果需要改动一点,有时都不知从何开始,因此Andriod提供AndriodXML文件。在Andriodplugin自动生成main.xml,我实验了一下,修改无效,只是提供信息,这是因为我们在程序用对相关组件进行了code,在本例子中如下:<LinearLayoutxmlns:android="http://s > 是View的继承类即可,包括自己定义的。如上所示的就是我们这个例子的一个View的描述。<TextViewxmlns:android="http://s 保存后,我们查看R.javatextviewID。为了和原来的区别,我们修改text<stringname="o">oWorld,I\'myourfriend!<stringname="app_name">让这些内容有效,修改oAndriod.java的内容,如下publicvoidonCreate(Bundle{就是对应}我们在main.xml ,执行如图如果需要使用第的JAR,这放置在此。在这个例子中没有Mandifest这个名字很熟悉,是java程序压缩为jar包,并生成可执行文件的时候需要使用的一个文件。在这里描述应用的内容,有点向linuxrpm中的*.spec文件。表明应用的名称,版本,图标位置,最低版本要求等等。在Eclipse中点击后,可以有图形话界面解释。这是文件的部分内容:<manifestxmlns:android="http://s <activity icon为:@drawable/iconres/drawable/iconimage。而@string/app_name,表示在activity的执行目标的类名称。如果我们需要给我们的应用设定用户的,例如允许使用GPS,可以加上<uses-permissionandroid:name="android.permission.ACCESS_GPS/">每一个Activity都需要在Andriodmanifest.xml文件进行。一个映用有多个Activity,里面的类名filter>中有ent.action.MAIN,表明这是应用启动时需要启动的Activity。四、不使用IDE采用命令1、建立androidcreateproject--target2--path/workspace/andriod/learning/Now--activityNow importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importjava.util.Date;//注意不是所有java类都在Andriod中有效,可以去查看Andriodclassreference//在andriod.view的package中,View.OnClickListenerisapublicstaticinterfacewhichdefinitionforacallbacktobeinvokedwhenaviewisclickedbyan voidonClick(Viewv)method.publicclassNowextendsActivityimplements{Button/**Calledwhentheactivityisfirst*activitystartpublicvoidonCreate(Bundle{/*ActivityonCreate()*//*建立button实例,当clickbutton时调用这个实例自己的onClick处理方式,我们在此实例实现View.OnClickListener的接口。这里和Java的Swing有不同,JButtonclick时会声常ActionEvent,将传递到ActionListener,而这里的处理方式更向VC,通过OnClickListener实例,触发其的OnClick()方法。*/button=newButton(this);}publicvoidonClick(View}private}}andriod先打开我们的模拟器,在模拟器上安装映用:$antinstall,之后我们在模拟器上看到我们的应用Now,并可以运行。五、Activity和main.xml我们在Andriod学习笔记(三:Andriodmain.xml文件进行了初步的了解,这本次,初步学习Activity和main.xml的关系。和container之间的关系。这使得我们可以方便阅读和是UI设计独立,也使得一IDE工具可以提供直观的GUI1、修订<!--线性布局,从上到下,方向由orientation的方向确定fill_parent即填充其父控件,这里就是全屏。<LinearLayoutxmlns:android="http://s >如果Javasourcecode中对此widgetid,andriod:id="@+id/<nameR.java上有对name,在程序中对应这个空间。-->buttonButtonwidgtpublicvoidonCreate(Bundle{

是名字>,就是对应的res/layout/main.xml文件。myTextView.setText("我的Activity");ButtonmyButtonButton)findViewByIdR.id.myButton);}六、xmlEclipse中的提示功失,可以采用Atl+/ 字体monospace 160点的显示器上,1dp=1pxdip,我们可以无须考虑像素是否密集,而获取我们期待的大小,因此推荐使用dip。 android:background背景色,采用RGB 值为flase或者turefalse这是TextViewsubclass,Lable的所有,也适用于Button。在Andriod学习笔记(四使用IDE采用命令行android:onClick="buttonClickAction"格式为andriod:onClick="method_namejavasourcecode中,我们在类中无implementinterface,可以直接publicvoid<method_name>(Viewv)这importpublicclassActivity01extends{publicvoidbuttonClickAction(Viewbutton...}}ImageView在res/drawable-hdpi中放置了一个hdrlandscape.jpg,通过android:src可实现加载-->android:singleLinefalse这里表示多行--> addroid:capitalize单词中第一个字母自动为大写,这对于名词,城市的EditTextandriod:digits只允许数字CheckBox和RadioBoxCompoundButtonCompoundButton是继承TextViewXML中如是unchecked变为checked。如果CheckBox的状态发生更改,需要在程序中进行触发方法处理。如下:public oAndriodextendsActivityimplements{privateCheckBoxmycheckbox=null;publicvoidonCreate(Bundle...}publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){mycheckbox.setText("Thischeckboxis:"+(isChecked?}}处于checked状态。在XML中如下处理:<RadioButtonandroid:id="@+id/radio1"android:text="RadioTextOne"/><RadioButtonandroid:id="@+id/radio2"android:text="RadioTextTwo"/><RadioButtonandroid:id="@+id/radio3"android:text="RadioTextThree"/>我们更常操作RadioGroup,常见的方法包括有check(),例如roup.check(R.id.radio1)),将R.id.radio1对应的radiobutton选上;clearCheck()unchecked;getCheckedRadioButtonId(),获取选上的radiobutton的ID,无则返回-1。在下面的例子中,我们在之前的checkbox的例子上增加radioboxpublicclassoAndriodextendsActivity implementsCompoundButton.OnCheckedChangeListener,RadioGroup.OnCheckedChangeListener{privateRadioGroupmyradiogroup=publicvoidonCreate(Bundle...}publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){mycheckbox.setText("Thischeckboxis:"+(isChecked?}publicvoidonCheckedChanged(RadioGroup group,intcheckedId){intradioId=myradiogroup.getCheckedRadioButtonId();if(radioId<0)}}

myTextView.setText("radiobutton:"+rb.getText());}上面的widget都是View,可以在XML中使用View的特例如:android:visibility="invisible"widget不可见,但是保留其所占的位置,如果是"gone",则不保留如android:background="@drawable/hdrlandscape",但是的话,ckeckbox的占用位置需考虑的大小。TextView以及其继承类可以使用android:textColor="#00ff00"来指定文本的颜色,处此之外,还可以采用ColorStaist的方式来设定不同情况下text的颜色。我们在res/layout/下新增一个AndroidXML文件button_color.xml对我们上面的button在不同状态下的颜色<selector 这些选择从上至下是具有优先级别的,例如state_focused放置在最后,并不起作用,因为会先执行state_pressed="false"state_pressedbutton_color,state_focused,state_selected,,,,些在XML中都很好理解。七、多个Activity 源一起看,需要进行一下同步。先初步了解一下应用具有多个Activity的处理情况。用于在一个应用中多个Activity的调用和数据传递,也可用于调用其他服务(应用。:x的方式来处理button触发调用,这里我们采用后式,并做了稍稍改动。...publicclassActivity01extends{privateButtonmybutton=...}classMyButtonListenerimplements{publicvoidonClick(Viewv)....../*在此,调用另一个Activity}}}2、编写另一个...publicclassOtherActivityActivity{privateTextViewmyTextView=protectedvoidonCreate(Bundle}} ... res/values/strings.xml中增加other<stringname="other">It\'sotheractivity!</string>3、通过Intent,在Activity01中调起OtherActivity,并向OtherActivity传递某个信息在MyButtonListener中的onClick:Intentintent=newintent.putExtraparam_str"InfofromActivity01");Activity传递<name,value>,valuestring的4、在OtherctivityIntentintent=getIntentStringvalue=intent.getStringExtra("param_str");5、intent也可以调用其他的应用,例如Uriuri= Intentintent=newIntent(Intent.ACTION_SENDTO,uri);//Intent(Stringaction,Uriuri)uri进行某个操作,ACTION_SENDTO:Sent.putExtra("sms_body",ThisismytextinfofromActivity01."传递SMS的文本内容中或者在程序中使用。对于要适配多国语言,建议采用第三种方式,只需对stings.xml的相关词汇进行翻译即可。 按钮,按下后,可以显示 ,如下处publicboolean )//addintgroupIdintitemIdintorderinttitleRes)exit的Item0GroupId1ItemId,这两个Id将用于按下后触发回调函数中用于判断具体是哪个Item,第三个表示拜访的顺序,在这里第一个是exit,第二个是about,第四个参数引向strings.xml中定义的内容。.add(0,1,1,R.string..add(0,2,2,R.string._about);returnsuper.onCreateOptions(}publicbooleanonOptionsItemSelected(Itemitem)if(item.getItemId()==1){//在这个例子中我们只有一个group,所有只需检查itemId就可以了finish}elseif(item.getItemId()==...}return}AndroidXMLandroid:orientationhorizontal或者vertical,排版将是水平从左到右,或者竖直从上到下。在java程序中,我们可以通过setOrientation()来改变方向,例如fillLinearLayout中android:layout_widthandroid:layout_height2)wrap_content,这就是natual的尺寸余的widget仍然有效的排列,而是希望将其他widget排列后的剩余空间。使用layout_weight的属性。layout_weightwrap_content共同使用,缺省layout_weight0,也就是sizenaturalsize。(如果fill_parent个有效值。这里是权重,如果有多个widget,就按此权重来分配剩余的空间。如果所有的layout_weight一样,这些widget就对剩余空间进行等分。有时我们会看到不一定很严格按照设定的权重比例来分配空间,必须能支持natural的大小,所以可能会有适配。线性布局从上到下,或这从左到右,可以使用gravity,提供align的方式,不按此顺序。对于"码中,可以使用setGravity(),例如setGravity(Gravity.LEFT);setGravity(Gravity.CENTER_HORIZONTAL);widget中也是有相应的属性,android:gravitywidgetwidget中的排放位置,例如android:gravity="right"。 PadwidgetpaddingXML中使用,code中可以使用setPadding()来处理。例如android:paddingTop="30px"。widget实际上包含了padding的尺寸。为了避免这种情况,我们可以使用margin来替代,例如android:layout_marginTop,例如android:layout_marginLeft="100px"通俗地,padding可以理解为widget的内边框,margin九、Activity-指定widget在container的相对位置,包括:android:layout_alignParentTop,android:layout_alignParentBottom, android:layout_centerVertical,android:layout_centerInParent,他们的值是false|true。widget的位置,可以使用:android:layout_aboveandroid:layout_belowandroid:layout_toLeftOf,,android:layout_alignLeftandroid:layout_alignRigh,android:layout_alignBaselinelabel的对齐。<RelativeLayoutxmlns:android="http://s ><TextViewandroid:id="@+id/label"android:paddingTop="15px"/><!--在label的右面有一edittext,填满余下的空间,并和label进行对齐<EditTextandroid:id="@+id/entry"<Buttonandroid:id="@+id/ok"OK按键的左边增加一个Cancelbutton<Buttonandroid:id="@+id/cancel"textview是我们第一个基准widget,我们设置了andrid:paddingp="15x"则由于后面我们按此尽心个对齐,editiewchipeditviewbutton之间的间距过大。android是根widgetwidgetwidget被拉高,因为网格定下沉,同样由于网格的缘故,下面的button不会随着下沉,将和eidtiew的位置有所,如图所示。然则,我们怎么知道要给label设置15px,如果布局都需要根据这样的经验值,就相当郁闷,另一个解决方式,就android:minSdkVersion="8pertiestarget=android-8AndroidXML文件,<TextViewandroid:id="@+id/label"<EditTextandroid:id="@id/entry"十、Activity-TableLayout和正看我的资料,正式雄心勃勃想看这个和看那个之际,脑际中闪现了的一句话:以有涯追无涯,殆矣。Oh~IBM有个人机比赛,人输了,比的大概有点像百科全书之类的知识。知识是无涯的,但是知AI能发展到什么程度,知识可以增长,智能可以增加,但是智慧是人和机器的差异。我们的教tablewidgetwidget需占android:layout_column="2"3widget4列或者下一行。需 小,将不会填满横排剩余的空间。在程序中可以是setColumnStretchable()—><TableRow<!--如果我们不设android:stretchColumns="1",EditTextnatrual的width0,即column1为1,这会导致如图所示的画面--><EditTextandroid:id="@+id/entry"android:layout_span="3"/><Buttonandroid:id="@+id/cancel"android:text="Cancel"/><Buttonandroid:shrinkColumns,将尽可能压缩columnRow0 " "TableLayout中加入属性:android:shrinkColumns="4,5",这样就可以如第二个图。在javacode中可以使用setColumnShrinkable()。设置为fill_parent<ScrollView 需要注意的是ScrollView不提供双向(横+竖)的scroll,只提供单向的十一、Activity-现。我们用两个例子来学习List。List例子一:利用Android自带的List格式步骤一:AndroidXML文件<LinearLayoutandroid:orientation="vertical"widget,查了...<Button… 在这个例子中,我们在加入了一个ButtonLayout android:drawSelectorOnTop="false"/>使用StringList的item在onCreateitemsetListAdapter并设置ListArrayAdapter有三个参数,第一是对象,第List的格式,第三List的内容。对于格式这个例子采用了点击ListCallbackListActivity,可以直接使用回调函数onListItemClickpublicclassBeginingBookextendsListActivityprivateButtonbutton;/**Calledwhentheactivityisfirstcreated.*/publicvoidonCreate(BundlesetListAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));button=(Button)findViewById(R.id.chapter7);}publicvoidonListItemClick(ListViewparent,Viewv,intposition,}}setListAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice,items));setListAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,items));setListAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_checked,items));下面,第一个图为步骤一:建立一个描述listitemXML<TextViewxmlns:android="http://s

步骤二:通过XML定义XMLXML文件,就可以适配不同的语言。我们在string.xml文件中增加相关的定…<string-arrayname<item>Bharain<item>Bangladesh<item>Benin</string-publicvoidonCreate(Bundle{String[]contries=getResources().getStringArray(R.array.countries_arry);ListViewlv=getListView();publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,long }}}上面给出Toast的例子。Toast.makeText(对象,文本内容,格式).show()。是核试验失败导致,她觉得可以信,因为在千里之外也受到辐射。听了就知道是,因此辐射的间是核电站发生氢气的时间一致的,至于,海啸后,就是派两过去。开始不明白有什么用,后来说的直升飞机协助救人。一派哥罩这小弟的样子,后来核辐射,两个就不知道躲里,威威地出来,迅速地闪了。有两个国家没有,但是有制造的能力,一个是南非,白人在之前销毁的,一个是,核能很发达,能够在短期内生产。目前没有任何理由去制看。今天最大的就是抢购盐。可能怕海水污染,在苏丹红,三鹿XX,瘦肉精面前如此淡定的我们,有什么可怕呢。实际上部分的盐都是井矿盐,沿海是盐场赚钱还是养殖场赚钱,已经没几个海盐场,所以这十二、Activity-有区别,但是我们学下一些细节的变化。难做5在,除者。在抽签前,反悔,不愿进行。但是其他人不同意,有另一人替他抽签,而也同意了。结果就是作外4个人被以杀,事情的过程清晰明了,如何判据。A:故意,谋杀成立,但是由于案情太特殊,将向最高机构申请豁免。了法律尊严,也伸张的公正对于A,若然透过其他才能伸张公正,何来法律尊严,要在法律的框架中解决这个问题 、 法于人罚,不。C:对于 3 D:对于A:越权,无权去指示其他人去进行豁免,足。E:本案涉及人类智慧如何在中实践的问题,于抽象的理论无法。执行法律在于处理社会的事务,社会的人不是会抽象的条目所,所谓不能脱离现实,取向不能与脱离太远。这中,跟随作出免F:步骤一:编写AndroidXML<LinearLayout……<TextViewandroid:id="@+id/spinner_label"……<!--经过我们的测试android:drawSelectorOnTop="true|false"不起作用,因此此参数可以不设置<Spinnerandroid:id="@+id/spinner" 设置Spinner之中的元素内容,采用了ArrayAdapter来描述,并通过setApdater()来设置adapterprivateString[]items= {"lorem","ipsum","dolor","sit","amet",….ArrayAdapter<String>aanewArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);第二个参数表示spinner没有展开前的UI类型spin.setAdapter(aa);//之前已经通过Spinnerspin=(Spinner)findViewById(R.id.spinner);来获取spin对设置spinner展开的方式,在上面,通过设置ArrayAdapter的第二个参数,设置了spinner没有展开UI格式,simple_spinner_itemtextviewlabel方式,而simple_spinner_dropdown_item这是点击圆圈选择方式。在这个例子中,展开方式设置为点击圆圈选择,如图所示。关于格式,我们会在第二个例子中3)setOnItemSelectedListener来设置Spinner的点击触发的callback函数,有onItemSelected{protectedvoidonCreate(BundlesavedInstanceState)…}publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,int longarg3)}publicvoidonNothingSelected(AdapterView<?>arg0)}}例子二:SpinnerUI步骤一:编写AndroidXML望item的元素内容设置都在XML中定义,方便修改以及多国语言版本的实现。strings.xml<item></string-layoutxml<LinearLayout…<TextView…<Spinnerandroid:id="@+id/spinner4"们点击展开Spinner中,我们可以看到在最上面增加了提示,如上图所示。设置spinner的adapter,并导入数据,以及设置UI格式Spinner//createFromResouce将返回ArrayAdapter<CharSequence>,具有三个参//第二个参数是从datasourcearrayID,也就是我们在stringsID spin.setAdapter(adapter);ArrayApdaterandroidAndroidXML文ListViewandroid.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item的显示,一般而言,我们都会显示前者。如果我们不通过setDropDownViewResource进行设置,则展开的方式缺省同未展开的方式,否则必须进行设置,下publicvoidonItemSelected(AdapterView<?>parent,Viewarg1,intpos,long//在这里我们复下Toast的用"Thenetis"+ Toast.LENGTH_LONG).show();}publicvoidonNothingSelected(AdapterView<?>arg0)//nothingto}}十三、Activity-通过两个例子学习GridView。Grid和Table有一点点类似。在例子中逐步描绘如何编写一个例子一:继承ArrayAdapter作为自定adapter1、编写AndroidXML <TextViewandroid:id="@+id/selection4"<GridViewandroid:id="@+id/grid"android:verticalSpacing="35px"<!--grid元间的竖直间隔-->android:horizontalSpacing="5px" <!--grid元间的水平间隔-->自动计算-->android:columnWidth="100px"<!--一般建议采用有像素密度无关的dipdp来表示android:stretodecolumnWidthWVGA800*4804列,有如果采用SpacingWidth,则分摊给3个间隔空隙-->android:gravity="center"一个ClickAndroidUIpublicclassChapter7Test4extendsActivity OnItemSelectedListener{privateTextViewselection=privateString[]items={"lorem","ipsum","dolor","sit","amet","o","me","elit","morbi","vel",protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);GridViewgrid=//步骤1:设置ArrayAdapter,可以采用android自带的格式,也可以自定义,这里自己定义grid.setAdapter(newFunnyLookingAdapter(this,grid.setOnItemSelectedListener(this);grid.setOnItemClickListener(this);}//3:编写CallBackpublicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,long{}@Override/*这是OnItemSelectedListener接口*/}publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3)}//4:编写自定义的adapter,继承ArrayAdapter<String>privateclassFunnyLookingAdapterextendsArrayAdapter<String>privateContextcontext;//4.1:编写adapterFunnyLookingAdapter(Contextcontext,intresource,String[]items){super(context,resource,items);theItems=items;}//4.2:重写getView()对每个单元的内容以及UIButton,ImageView,在这里我们使用ButtonTextView分别作测试重写overridegetView(int,View,。publicView (intposition,ViewconvertView,ViewGroupparent){TextViewlabel=(TextView)convertView;建label=(TextView)convertView;}label.setText(position+":"+theItems[position]);returnconvertView;}}//Endofclass}左图是使用android自带的粗体格式,即被注释掉的setAdapter,图二为例子源代码示例,图右将的,而将优先Button的Click,即我们定制的GridView中将得不到触发,这需特别注意。BaseAdapter<!--dp等同于dip,deviceindependentpixels设备独立像素,多用于android,与分别率无关,<GridViewxmlns:android="http://s android:columnWidth="90dp"android:numColumns="auto_fit"android:verticalSpacing="10dp"android:horizontalSpacing="10dp"android:gravity="center">我们在来看看Javacode1),copy至res/drawable-hdpi/中protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);gridview.setAdapter(newImageAdapter(this));publicvoidonItemClick(AdapterView<?>parent,Viewv,intposition,longid){Toast.makeText(this,""+position,Toast.LENGTH_SHORT).show();}}publicclassImageAdapterextends{privateContextcontext=//referencestoour R.drawable.sample_5,R.drawable.sample_6,...//这里是文件的对应的Id,不在具体列出};publicImageAdapter(Contextcontext){this.context=context;}//2.1:getCount()HowmanyitemsareinthedatasetrepresentedbythisAdapter.publicintgetCount(){return}()publicObjectgetItem(int{return}//2.3getItemId()rowid(Gettherowidassociatedwiththespecifiedpositioninthelist)由于我们也不需要,简单的设为0publiclonggetItemId(int{return}//步骤2.4:获得GridView里面的View,GetaViewthatdisysthedataatthespecifiedpositionindataset.和第一个例子一样,传递的第二个函数可能为null,必须进行处理。publicViewgetView(intpositionViewconvertViewViewGroupparentif(convertView==null){imageView=new

*ImageView.ScaleType.CENTER_INSIDE按比例统一缩放(保持的尺寸比例)便于的两维(宽度和高度)等于或小于相应的视图维度*/imageView=}returnimageView;}}我们设置了几种scaleType,下面左图是ImageView.ScaleType.CENTER_CROP,右图是 list之中。adapterlistselectedlistener,我们可以下面是XML <TextViewandroid:id="@+id/selection6" pletionThreshold="3" <!--list步骤二:JAVAsource//2.1增加接口,实现 TextWatcher{privateTextViewselection; privateString[]items={"lorem","ipsum","dolor","sit","amet","consectetuer","adipiscing","elit","morbi","ligula","vitae","arcu","aliquet","mollis","etiam","vel","erat","cerat","ante","porttitor","sodales","pellentesque","augue","purus"};protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);selection=edit= edit.addTextChangedListener(this);}无须处理afterbefore,之针对onTextChanged进行处理*/publicvoidafterTextChanged(Editables)//nothingto}publicvoidbeforeTextChanged(CharSequences,intstart,int intafter)//nothingto}publicvoidonTextChanged(CharSequences,intstart,intbefore,int{}}设置描述Listitem androiddimension(Pixels,像素(Inches,英寸(Millimeters,毫米(Points,磅:屏幕物理长度单位,1/72dp(与密度无关的像素160dpi屏幕上,1dp=1px=1/160英寸。随着密度变化,对应的像dip:与dp相同,多用于示例中设置Activity <TextViewandroid:text="Country" pletionThreshold pleteTextViewtextView=( pleteTextView)findViewById(R.id.auto_country); 十五、Activity-WindowShowViewOtherAndroidLogCat,这样将显示LogCatSystem.out.print()以及System.out.print(" 这样,我们在LogCat 习笔记(十三:Activity-GridView》中对BaseAdapter进行继承。publicclassChapter7Test8extends{protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);步骤1adapter来描述item的内容以及设置itemsetOnItemClickListener()设置点击触发的操Gallerygallery=(Gallery)findViewById(R.id.gallery);gallery.setAdapter(newImageAdapter(this));publicvoidonItemClick(AdapterView<?>parent,Viewv,intid){}}}//步骤2:adapter继承BaseAdapter,具体描述item。需要创建构造函数,具体化getCount(),getItem(),getItemId(),getView()。privateclassImageAdapterextendsBaseAdapter{privateContextmContext;privateInteger[]mImageIds={ R.drawable.sample_5, R.drawable.sample_6,publicImageAdapter(Contextcontext){mContext=context;}publicintgetCount()return}publicObjectgetItem(int{return}publiclonggetItemId(int{return}显示比例,这里,我们采用FIT_XY,根据X:Y将整个显示出来,如果X:Y和长:宽不一样,publicViewgetView(intposition,ViewconvertView,ViewGroup{ImageViewimage=newImageView(mContext);image.setLayoutParams(newGallery.LayoutParams(150,100));return}}}通过xml文件对item我们在res/values/xml文件,用于描述自定义widgetstyleandroidgalleryItembackgroundgalleryitem。如下: attrIda.getResourceId(R.styleable.XXXX_AAAA,defaultId);//ID回defaultId的值。...TypedArraya=obtainStyledAttributes(R.styleable. }......}学习两种显示条,ProgressBar用于output,SeekBar用于Input1)AndroidXML文......

android:max="200"<!--缺省为100-->gone和invisible-,但是invisiblewidget的空间,gonestyle="?android:attr/progressBarStyle" style="?android:attr/progressBarStyleSmall" android:text="Begin"/>我们注意到style的设置方法Android的reference的Progress中,我们XMLattributes中查到有四种style,我们分别设置了4个progressbar来进行实验。

//在OnCreate()中,设置layout,然后通过ID找到firstBar,secondBar,thirdBar,Bar,Button,此firstBar.setIndeterminatetrue*progressbar无效*/button.setOnClickListener(newOnClickListener(){publicvoidonClick(View{if(precent==0){firstBar.setSecondaryProgress(0);firstBar.setVisibility(View.VISIBLE);precent+=10;}elseif(precent<=firstBar.getMax()){//当然在这个例子中Max200,也可以直接写为200,firstBar.setSecondaryProgress(precent+10);//secondBar.setProgress(precent);/*测试证明此此不起作用,包括thirdBar, precent+=10;firstBar.setVisibility(View.GONE);precent=0;}}progressbarstyleprogressBarStyleHorizontalfirstBar.setIndeterminate(true)。如果设置了无效,则setProgress()无法起作用。进度条允许设置两个进度setProgress()和secondaryProgress(),后者颜色浅一些。一般我们使用一个进度条。后面三个style分别为progressBarStyle,progressBarStyleLargeprogressBarStyleSmall。这三个都是

温馨提示

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

评论

0/150

提交评论