智能的手机学习与应用的.docx
- 文档编号:1341407
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:12
- 大小:1.03MB
智能的手机学习与应用的.docx
《智能的手机学习与应用的.docx》由会员分享,可在线阅读,更多相关《智能的手机学习与应用的.docx(12页珍藏版)》请在冰豆网上搜索。
智能的手机学习与应用的
智能手机程序设计之修改篇
11101078张萍
学习智能手机程序设计已经算是有一段时间了,我想把我这段时间研究的一些“成果”一一介绍给大家了解一下,也算是探索之余的一次小小尝试和进步吧,同时也把我遇到的问题拿出来和大家一起探讨一下,下面是我自己学习的一些心得:
一:
多媒体学习
1.Audio
对于多媒体中声音的界面控制,我是把代码中的按钮位置和数字1-9采用a-i字母修改了一下,如图可以看到,我把显示界面的位置调到了中间,是把代码10dip修改为从而调整了按钮所在的中间位置,同时可以增加你任意想要增加的按钮的个数和每个按钮的声音,比如加上jkl等按钮的声音,这其中声音的加入你就要增加相应文件的个数来达到每个按钮按下去都会有不同的声音,变化图形如下图:
Video文件的学习中,我一直无法将samplevideo.3gp文件在程序运行时打开,运行起来会出现错误,不能在虚拟器中打开。
2.Sudoku3
为数独游戏配上音乐
1.首先创建一个选择音乐的界面musicchoice,然后点击按钮可以选择不同的音乐类型,即点击后弹出一个对话框,就如那个难度系数的对话框一样。
2.mp.start();
mp.setLooping(true);
我想要的是直接开始音乐,再对音乐进行循环播放,我觉得这样也应该可以,但是书本上是直接循环然后再播放音乐。
二.存储本地数据
Sudoku4
1.for(inti=0;i<9;i++)对于这个循环的话,大家都看得懂,但是我想说的
{cin>>a[i];这个是对上面我修改的字母进行的说明,如果输入字母就
if(i%3!
=0)要稍微修改一下。
continue;}
2.
privatestaticfinalstringselx=’selx’;
privatestaticfinalstringsely=’sely’;
privatestaticfinalstringview_state=’viewstate’;
privatestaticfinalintID=42将这段程序修改为如下图:
在这里,我也想要把intID=42的数字修改为20,也就是将光标的位置初始值设定为20,这也是一个小小的修改吧。
三:
互联的世界
1.左图是对书上的代码进行修改,代码为android:
layout_width=”wrap_content”
android:
layout_height=”wrap_content”
android:
layout_weight=”1.0”
android:
lines=”1”旨在修改显示的界面,显示的行数,以及占屏幕的比例。
2.
我是直接在strings.xml中直接修改go为Enter,这个比较简单。
3.privatevoidopenBrowser(){
Uriuri=Uri.parse(urlText.getText().toString());
Intentintent=newIntent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}直接将startActivity(intent)修改为startActivity(view),将intent类改为嵌入式View类,主要是在一个活动中打开另外一个活动。
其实在很多时候都要嵌入式类来达到在一个活动中打开另一个界面的目的,这是一个大的突破和创新运用。
四.定位与环境感知
1.谷歌地图
Mymap
当你在一米范围内时不进行刷新,也就是当你拿着手机进行定位时它显示的位置在一米范围内不会变化,而当你走出这一范围后,程序会自动刷新,显示你当前所在的位置。
地图界面上可以直接通过X.Y坐标轴在地图上实现直接定位到某一点,并可以显示两点之间的直线距离,可以输入两点之间的经纬度,计算两点之间的实际距离,同时可以看到在图上点击卫星,可以实现交通图和卫星图的相互转换,这是谷歌地图的一大亮点与让人佩服的地方。
通过地名定位的设计思路
本功能的实现目标是:
在一个EditText里输入一个地名,点击Button,在MapView里便会显示出该地。
实际上,由于在GoogleMap中必须获得经纬度才能定位,故本定位方法不过是前一种定位方法的加强版,即先通过地名获得该地的经纬度,再通过经纬度进行定位。
由此可知,本设计的核心内容,便是如何通过地名获得该地的经纬度。
本来此问题应该很好解决,因为Google提供了一个用于实现该功能的Geocoder类,只要使用该类生成一个对象,并使用getFromLocationName()方法,只需几句代码便可轻松将地名转换为相应的经纬度,由于手中的android开发教材和网络上能够搜索到的绝大部分资料中使用的都是该方法,如下:
Geocodergeocoder=newGeocoder(this);
List
list=geoCoder.getFromLocationName(Address,1);//Address是输入的地址信息
if(!
lstAddress.isEmpty()){
Addressaddress=list.get(0);
doublelatitude=address.getLatitude()*1E6;
doublelongitude=adress.getLongitude()*1E6;
GeoPointgeopoint=newGeoPoint((int)latitude,(int)longitude);
}
但在实际的开发过程中发现,在调试程序时,点击Button后,程序没有任何响应。
经反复调查研究后得知,由于googlemap中的Getcoder反转经纬度一直存在BUG,在前一段时间google终止了这项服务,故Geocoder返回List为null,得不到地址信息。
但是可以采用下面的步骤一步步完成定位与更新:
a.获取用户当前位置的步骤如下:
1、在AndroidManifeST.xml中声明相应的权限:
name="“android.permission.ACCESS_COARSE_LOCATION”"permission> 2、提供位置服务,首先需要获得LocationManager对象获取LocationManager可以通过调用android.app.Activity.getSystemService()函数实现 android.app.Activity.getSystemService() 函数代码如下 mlocationManager=(LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 3、设置Criteria对象: Criteriacriteria=newCriteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(false); criteria.setPowerRequirement(Criteria.POWER_LOW); 4、设置Provider: Stringprovider=locationManager.getBestProvider(criteria,true); Locationlocation=locationManager.getLastKnownLocation(provider); 此图为谷歌卫星定位视图,我们可以感受到它的强大与深不可测。 b、WebView的定义及设置: 1.在XML布局文件中定义WebView控件;然后在程序中装载这个控件,设置属性;最后通过loadUrl方法实现网页的载入。 设置可以访问文件 webSettings.setAllowFileAccess(true); 设置支持缩放 如果需要设置地图显示的地点以及放大倍数等,就需要使用MapController来控制地图。 可以通过如下代码获得MapController对象: MapControllermapController; mapController=mapView.getController(); (TextView)layout.findViewById(R.id.showmapZoom); showZoomlevel.setText("缩放级别” +String.valueOf(sgMapView.getZoomLevel())); c.增加经度纬度的设定 要定位地点,需要构造一个GeoPoint来表示地点的经纬度,然后使用animateTo方法将地图定位到指定的GeoPoint上,代码如下: GeoPointgeoPoint01; geoPoint01=newGeoPoint((int)(editText01double*1000000),(int)(editText02double*1000000)); mapController.animateTo(geoPoint01); 定义一个类,保存经纬度信息,经纬度按照用户输入地址解析而得到。 其函数代码如下: publicvoidonProviderDisabled(Stringprovider){ Toast.makeText(GMap.this,R.string.nogps_alert, Toast.LENGTH_LONG).show(); } publicvoidonProviderEnabled(Stringprovider){} publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){} }; 通过调用Location中的getLatitude()和getLonggitude()方法可以分别获取位置信息中的纬度和经度,示例代码如下: doublegeoLatitude=location.getLatitude()*1E6; doublegeoLongitude=location.getLongitude()*1E6; d: 代码将产生位置改变事件的条件设定为时间间隔为3秒 实现locationListener的代码如下 LocationListenerlocationListener=newLocationListener(){ publicvoidonLocatio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 手机 学习 应用