about 1 day ago -
Android的强大表现在各个方面,在这里介绍一下其中的一个自动获取所在地理位置坐标的功能。Android中通过LocationManager来获取地理位置等相关信息的。
首先,需要获取LocationManager实例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//获得当前位置的坐标
LocationManager locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);//获取LocationManager的一个实例
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,?
10000, 0, locationListener);?
/*注册一个周期性的位置更新 每隔1000ms更新一次,并且不考虑位置的变化。
{zh1}一个参数是LocationListener的一个引用*/
???????
Location location = locationManager.getLastKnownLocation
(LocationManager.GPS_PROVIDER);??
String latitude = Double.toString(location.getLatitude());//经度
?String longitude = Double.toString(location.getLongitude());//纬度
?String altitude = Double.toString(location.getAltitude());//海拔
??????? //输出文字
TextView tv = (TextView) this.findViewById(R.id.local);
tv.setText("latitude:"+latitude+"\nlongitude:"+longitude
+"\naltitude:"+altitude+"\n");
实现LocationListener的引用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
//当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
about 5 days ago -
看到好多人都问过这样一个问题,看起来不难,可是好多同学都在问。
这里给一个简单的方法凑乎用着吧。
首先 layout 中的xml里要有一个TextView 或者在程序里面new一个也行
<TextView android:text=”2phone8.com.cn”
???android:id=”@+id/hello”
???android:layout_width=”fill_parent”
???android:layout_height=”wrap_content”
???android:background=”#FF0000″
???android:textColor=”#ffffff”
???android:textStyle=”bold”
???android:padding=”2px”>
??</TextView>
然后再activity中获得这个TextView
TextView tv = (TextView)findViewById(R.id.hello);
{zh1}赋值给它
?tv.setText(“www.2phone8.com.cn“);
这样文字就变的多了www.
同样其他的赋值也都可以如此
about 5 days ago -
看了好多关于android开发中的多语言国际化的相关文章,给我感觉就是长而无用。
我的方法其实也有多么的简单优秀,只是省去了新建一个XML的过程。
多语言不光是一个values/string.xml 可以国际化 。drawable 和 layout也是可以国际化的!
我们就拿values做个例子吧!
方法如下:
1.在eclipse的android项目中,找到res/values文件夹。
2.右键点击values 文件夹,copy复制
3.右键单击res文件夹 paste粘帖
4.弹出文件名设置对话框 将Copy of values? 修改为values-en 点击OK
5.到values-en/string。xml 中修改内容,把中文翻译成英文就OK了
上面是英文国际化的方法,同样我们可以设置中文简体drawable-zh-rCN 中文繁体layout-zh-rTW 以及其他语言
有的同学会发现zh-rCN 多了一个r ,有的地方没有也是照样能用。
我在1.5下试过 两种都可以? 但是也有人说 zh-rCN 是不行的。确实有这样的情况。原因不太清楚。
如果有哪位高人知道,请指点一下!
about 1 week ago -
android 设置按钮居中 文字居中
看一下这里的代码:
1
2
3
4
5
6
7
8
9
10
<TextView android:text="@string/receive1"
android:id="@+id/TVinputReceive1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5px"
android:textSize="18px"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center">
</TextView>
其中有android:gravity=”center” 和android:layout_gravity=”center”
这两个就是控制居中浮动的无论是在button 还是TextView中都能能起作用的,那他们有什么区别呢?
android:layout_gravity=”center” 是控制这个控件本身的居中。 如button 或 TextView居中。而android:gravity=”center” 是控制控件中的内容居中 。如button里的字 或 TextView里的字居中
about 1 week ago -
在Android系统中,由于手机屏幕大小的限制,一般需要字符输入的时候,弹出的输入法面板往往会占据大半个屏幕,如果输入框正好在下方,那经常会出现被输入法面板遮挡的尴尬,给使用者带来不小的困扰,用户体验很不友好。
查了一下Android SDK的说明,发现可以通过设置Activity的一个属性来解决这个问题,比如可以在AndroidManifest.xml中这样写:
<activity android:name=”.CategoryList”
??????? android:label=”@string/app_name”
??????? android:windowSoftInputMode=”stateVisible|adjustPan”>
</activity>
这里面的android:windowSoftInputMode就是用来避免输入法面板遮挡问题的,具体的参数说明可参考SDK文档,但是,文档中说明,该属性是Android 1.5之后才加上的,也就是API Level 3以后的SDK才支持,那么如果在联想O1这样的机器上就不管用了,则该怎么办呢?好在我又找到了另外一种解决办法,就是ScrollView。我们可以在对应的layout XML的{dj0}元素上加一层ScrollView,这样,在这个ScrollView中,所有的文本框在输入法面板弹出的时候都会自动的向上滚动,示例代码如下:
<ScrollView xmlns:android=”http://schemas.android.com/apk/res/android “?
??????? android:layout_width=”fill_parent”?
??????? android:layout_height=”fill_parent”>?
??? <LinearLayout android:orientation=”vertical”?
??????????? android:layout_width=”fill_parent”?
??????????? android:layout_height=”fill_parent”>?
??????? <EditText android:id=”@+id/content”???
??????????????? android:layout_width=”fill_parent”???
??????????????? android:layout_height=”wrap_content”???
??????????????? android:lines=”4″?
??????????????? android:scrollbars=”vertical”?
??????????????? android:gravity=”fill_horizontal” />?
??? </LinearLayout>?
</ScrollView>
about 1 week ago -
1.在测试时,如何实现一个提示
可以使用
Toast.makeText(this, “这是一个提示”, Toast.LENGTH_SHORT).show();
//从资源文件string.xml 里面取提示信息
Toast.makeText(this, getString(R.string.welcome), Toast.LENGTH_SHORT).show();
这个提示会几秒钟后消失
2.可以使用AlertDialog.Builder 才产生一个提示框.
例如像messagebox那样的
new AlertDialog.Builder(this)
.setTitle(“Android 提示”)
.setMessage(“这是一个提示,请确定”)
.show();
带一个确定的对话框
new AlertDialog.Builder(this)
.setMessage(“这是第二个提示”)
.setPositiveButton(“确定”,
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialoginterface, int i){
//按钮事件
}
})
.show();
AlertDialog.Builder 还有很多复杂的用法,有确定和取消的对话框
new AlertDialog.Builder(this)
.setTitle(“提示”)
.setMessage(“确定退出?”)
.setIcon(R.drawable.quit)
.setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
setResult(RESULT_OK);//确定按钮事件
finish();
}
})
.setNegativeButton(“取消”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//取消按钮事件
}
})
.show();
3.menu 的用法.
public static final int ITEM_1_ID = Menu.FIRST;
public static final int ITEM_2_ID = Menu.FIRST + 1;
public static final int ITEM_3_ID
about 2 weeks ago -
首先我们进入cmd中使用cd命令定位到SDK的Tools目录下,执行mksdcard命令就可以。
?mksdcard参数如下:
mksdcard: create a blank FAT32 image to be used with the Android emulator
usage: mksdcard [-l label] <size> <file>
? if <size> is a simple integer, it specifies a size in bytes
? if <size> is an integer followed by ‘K’, it specifies a size in KiB
? if <size> is an integer followed by ‘M’, it specifies a
about 2 weeks ago -
1、手机要安装有终端(去菜市场搜索Terminal emulator)
2、手机的终端要安装有Busybox
1. 上传或者拷贝 busybox文件至 SD卡根目录
2. 打开超级终端敲入以下命令
升级至超级用户
Code:
su
建立busybox的目录
Code:
mkdir /data/busyboxcd /data/busybox
拷贝SD卡上的busybox文件至手机系统busybox目录
Code:
cat /sdcard/busybox > ./busybox
使busybox可以执行
Code:
chmod 755 ./busybox
安装busybox至手机系统
Code:
./busybox –install
使安装的busybox执行文件都可以执行
Code:
chmod 755 *
{zh0}追加PATH执行目录
Code:
export PATH=/data/busyboxPATH
3、在终端里输入:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system??????
*这步是关键
4、通过VI改Host文件。
5、重启
about 2 weeks ago -
前几天说过了adb的短信发送与模拟器的接收。
今天在这里在说说通过代码,进行的短信发送。
首先,我们来看一下SmsManager短信的发送代码:
SmsManager sms = SmsManager.getDefault();
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,new Intent(DELIVERED), 0);
sms.sendTextMessage("10086", null, "cxyl", sentPI, deliveredPI);
Toast.makeText(this, "ok", Toast.LENGTH_LONG).show();
我们用到了sendTextMessage函数,在sdk中
public void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
destinationAddress:? 收件人地址
scAddress:? 短信中心号码,空为默认中心号码
sentIntent: 当消息发出时,成功或者失败的信息报告通过PendingIntent来广播。如果该参数为空,则发信程序会被所有位置程序检查一遍,这样会导致发送时间延长。
deliveryIntent: 当消息发送到收件人时,该PendingIntent会被广播。pdu数据在状态报告的extended data (“pdu”)中。
抛出 IllegalArgumentException??如果收件人或者信息为空。
public static PendingIntent getBroadcast (Context context, int requestCode, Intent
about 3 weeks ago -
ToPhoneBar 为您提供android QQ 官方正式版下载连接 ,android QQ 官方正式版点击下载 {zx1}版本:QQ for android Beta 1.0
,
QQ for Android 官方正式版 {zx1}版本 Beta 1.0 是腾讯公司针对日渐增多的Android用户,推出的基于Android操作系统平台的即时通讯工具,让您的沟通变得更加自由
消息盒子全面管理未读消息和最近联系人您和他或她的距离,在一指之间。
群聊天、群设置、群管理,您的群,您做主不错过任何有价值的消息。
支持使用GPRS/EDGE/3G/WIFI等多种无线网络。
支持的运行环境:android 1.5,android1.6 , android2.0,android2.1。