`
阅读更多
如何取得手机号码,手机串号,sim卡序列号?
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String deviceid = tm.getDeviceId(); 
String tel = tm.getLine1Number(); //本机号码
String imei =tm.getSimSerialNumber();
String imsi =tm.getSubscriberId();
res.setText(deviceid+"#"+tel+"#"+imei+"#"+imsi);

注:并不是所有手机都能取到本机号码,中国电信手机(133)取不到号码。

如何让Activity失去任何按键和点击反应?
当我们链接网络时需要显示一个ProgressBar让用户等待。
但是这个时候点击屏幕上任何东西都是无效的,这个怎么设置?不能用ProgressDialog!
@Override
	public boolean dispatchKeyEvent(KeyEvent event) {
		// TODO Auto-generated method stub
		if (progress.isShown()) {
			return true;
		} else {
			return super.dispatchKeyEvent(event);
		}
	}

	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		// TODO Auto-generated method stub
		if (progress.isShown()) {
			return true;
		} else {
			return super.dispatchTouchEvent(ev);
		}
	}
	@Override
	public boolean dispatchTrackballEvent(MotionEvent ev) {
		// TODO Auto-generated method stub
		if (progress.isShown()) {
			return true;
		} else {
			return super.dispatchTrackballEvent(ev);
		}
	}


如何将中文设置成粗体?
在xml文件中使用android:textStyle="bold" 可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:
TextView tv = (TextView)findViewById(R.id.TextView01);
TextPaint tp = tv.getPaint();
tp.setFakeBoldText(true);

如何实现半透明的弹出框?
只需要把Manifest文件中注册的activity中添加android:theme="@android:style/Theme.Dialog"就可以了。如:
<activity android:name=".SettingActivity" android:label="@string/app_name" android:icon="@drawable/icon" android:theme="@android:style/Theme.Dialog"></activity>

如何实现在自己的程序中点击一个按钮,然后弹出系统自带的联系人?
button.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);
				intent.setData(ContactsContract.Contacts.CONTENT_URI);//android2.X
				startActivity(intent);
			}
		});


如何打电话,发短信...等等?
1,调web浏览器
Uri myBlogUri = Uri.parse("http://xxxxx.com");
returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri);
2,地图
Uri mapUri = Uri.parse("geo:38.899533,-77.036476");
returnIt = new Intent(Intent.ACTION_VIEW, mapUri);
3,调拨打电话界面
Uri telUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_DIAL, telUri);
4,直接拨打电话
Uri callUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_CALL, callUri);
5,卸载
Uri uninstallUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);
6,安装
Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
7,播放
Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");
returnIt = new Intent(Intent.ACTION_VIEW, playUri);
8,掉用发邮件
Uri emailUri = Uri.parse("mailto:xxxx@gmail.com");
returnIt = new Intent(Intent.ACTION_SENDTO, emailUri);
9,发邮件
returnIt = new Intent(Intent.ACTION_SEND);
String[] tos = { "xxxx@gmail.com" };
String[] ccs = { "xxxx@gmail.com" };
returnIt.putExtra(Intent.EXTRA_EMAIL, tos);
returnIt.putExtra(Intent.EXTRA_CC, ccs);
returnIt.putExtra(Intent.EXTRA_TEXT, "body");
returnIt.putExtra(Intent.EXTRA_SUBJECT, "subject");
returnIt.setType("message/rfc882");
Intent.createChooser(returnIt, "Choose Email Client");
10,发短信
Uri smsUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_VIEW, smsUri);
returnIt.putExtra("sms_body", "yyyy");
returnIt.setType("vnd.android-dir/mms-sms");
11,直接发邮件
Uri smsToUri = Uri.parse("smsto://100861");
returnIt = new Intent(Intent.ACTION_SENDTO, smsToUri);
returnIt.putExtra("sms_body", "yyyy");
12,发彩信
Uri mmsUri = Uri.parse("content://media/external/images/media/23");
returnIt = new Intent(Intent.ACTION_SEND);
returnIt.putExtra("sms_body", "yyyy");
returnIt.putExtra(Intent.EXTRA_STREAM, mmsUri);
returnIt.setType("image/png");
最后一步:
startActivity(returnIt)

如何把Button或者ImageButton的背景设为透明或者半透明?
android:background=”@android:color/transparent”
or
android:background="@null"
or
半透明<Button android:background="#e0000000"/>
透明<Button android:background="#00000000"/>

如何在TextView显示HTML?
TextView tv=(TextView)findViewById(R.id.tv);
Spanned text = Html.fromHtml("<a href='http://www.baidu.com'>baidu</a>");
tv.setText(text);
如果html中有图片,请参考这篇文章:
http://da-en.iteye.com/blog/712415


如何修改软键盘默认为数字输入?
EditText editText = (EditText) findViewById(R.id.et);
editText.setInputType(InputType.TYPE_CLASS_NUMBER);

如何阻止EditText自动弹出输入法?
//EditText有焦点阻止输入法弹出
editText.setOnTouchListener(new OnTouchListener() {
				
	public boolean onTouch(View v, MotionEvent event) {
		// TODO Auto-generated method stub
		//记住EditText的InputType现在是password 
		int inType = editText.getInputType(); // backup the input type
		editText.setInputType(InputType.TYPE_NULL); // disable soft input    
		editText.onTouchEvent(event); // call native handler    
		editText.setInputType(inType); // restore input type   
		editText.setSelection(editText.getText().length());
		return true;
					
	}
});

还可以试试:
EditText et=(EditText)findViewById(R.id.edit);
et.setInputType(InputType.TYPE_NULL);


如何设置半透明效果?
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAlpha(0x40);
canvas.drawXXX(...);
}
注意setColor和setAlpha的位置不要颠倒,否则无效!

如何让TextView中的文字居中显示?
android:gravity="center"

如何删除模拟器上安装的apk?


android中文资源
http://www.cnblogs.com/over140/default.html?page=1

如何自定义标题栏?
//首先需要请求对FEATURE_CUSTOM_TITLE操作
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
view = new SnakeView(this);
setContentView(view);
//然后设置
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

R.layout.title对应的布局文件:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"     >
	<TextView
	android:id="@+id/title"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:layout_weight="1"
	android:layout_gravity="center"
	android:gravity="center" 
	android:text="Snake"
	android:textColor="@color/red"
	/>
</LinearLayout>

效果如下:

这里需要注意,最好不要修改背景色,否则会出现标题栏不会被充满的问题(会露马脚啦:)),如果确实需要修改背景色又不漏马脚,那么请看这篇文章:
http://www.iteye.com/topic/760314

在View中绘制文本,如何获得文本高度和宽度?
FontMetrics对象的四个基本坐标基准分别为:
・FontMetrics.top
・FontMetrics.ascent
・FontMetrics.descent
・FontMetrics.bottom

获得高度:
FontMetrics fm = paint.getFontMetrics();// 得到系统默认字体属性 
float fontHeight = fm.descent - fm.top;// 获得字体高度
也可以这样:
float fontHeight = fm.bottom - fm.top;// 获得字体高度,与上面稍微有些差别,见图。
还可以这样:
paint.getTextSize();// 获得字体高度,简单一点就这样啦,区别不是太大。

获得宽度:
paint.getTextWidths(text, widths[]),widths是每个字符的宽度,维度不小于字符数。
还可以这样:
paint.measureText(text)
canvas.drawText("坐标测试", 0, 0, paint);//在屏幕上能看见吗?(不全屏的话)
canvas.drawText("坐标测试", 0, paint.getTextSize(), paint);//这个可以看到
canvas.drawText("坐标测试", 0, fontMetrics.bottom-fontMetrics.top, paint);//这个也可以看到

startManagingCursor(cursor)的作用是什么?
startManagingCursor可以让cursor也纳入到Activity的生命周期里。比如当activity stopped,就自动调用cursor.deactivate();当activity restarted,就自动调用cursor.requery()。省事!
通常都是这样使用:
Cursor cursor=db.query(XXX);//db为SQLiteDatabase对象
startManagingCursor(cursor);

startActivity(intent)和startActivityForResult(intent, requestCode)有什么区别?
startActivity(Intent)用于界面的跳转;
startActivityForResult()用于界面的相互跳转,比如Activity1 跳转到 Activity2,但是还需要在Activity2 再回到 Activity1呢? 可能有人说: 那我在Activity2  再使用 startActivity() 不就可以了,是的。但是startActivityForResult能够直接完成这项工作。
其中int requestCode:用于标识该Intent 回来后确定是不是想要的返回。
setResut(int resultCode, Intent intent)
resultCode 如果子模块可能有几种不同的结果返回,可以用这个参数予以识别区分。如果成功可以使用 RESULT_OK 值。之后可以在回调函数
protected void onActivityResult(int requestCode, int resultCode, Intent data){
     super.onActivityResult(requestCode, resultCode, data);
     switch (resultCode) {
		case RESULT_OK:
                doSomething();
                break;
            }
}

中处理需要做的事情。

ListView中getSelectedItemId()和getSelectedItemPosition()有和区别?
getSelectedItemId()获得的是对应数据库(如果使用了sqlite)中记录的id;比如:屏幕上看到的第3项,并不一定是数据库中的第3项。getSelectedItemId()获得的就是数据库中的第几项!这个很重要!操作数据的时候不会错乱了。
getSelectedItemPosition()获得的是绝对位置,就是指屏幕中第几项,从0开始。

长按菜单ContextMenu中如何获得ListView中的item?
public boolean onContextItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		AdapterContextMenuInfo info=(AdapterContextMenuInfo)item.getMenuInfo();//MenuItem中的信息全在AdapterContextMenuInfo中被封装
		switch (item.getItemId()) {
		case Menu.FIRST:
			doSomething(info.id);//注意这里
			return true;
		case Menu.FIRST+1:
			doOthers(info.id);
			return true;
		default:
			break;
		}
		return super.onContextItemSelected(item);
	}


如何通过Button弹出Menu?
this.openOptionsMenu();

android中如何清屏?
canvas.drawColor(Color.BLACK);

如何改变Dialog背景透明度?
Dialog dg = new Dialog(this);
Window window = dg.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.alpha = 0.5f;
window.setAttributes(lp);
//lp.alpha = 0.5f 透明度设置 其值要合理 自己反复测试
//为什么要这个技巧 因为很多人说:弹出Dialog会导致背景变暗 有Animation发生 导致性能变慢 可以用这个改变之 而且可以借助这个 使得全透明 不挡住Dialog后面内容的显示


如何隐藏状态栏?
隐藏 状态栏 即:最上方的信号强度 3G网络 等属性
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        	    WindowManager.LayoutParams.FLAG_FULLSCREEN);

其它使用: 
this.getWindow().setFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR, WindowManager.LayoutParams.TYPE_STATUS_BAR);


如何隐藏标题栏?
即:应用程序名称的那一栏
//注意:2行代码的先后顺序不能颠倒
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
//同时使用隐藏状态栏可以使可视面积最大化!
或者也可以在Manifest文件中这样设置:
<application android:icon="@drawable/icon"
  android:label="@string/app_name"
  android:theme="@android:style/Theme.NoTitleBar">


如何设置横屏?
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


如何取得屏幕宽高?
DisplayMetrics dm=new DisplayMetrics();
        this.getWindowManager().getDefaultDisplay().getMetrics(dm);
        int screenWidth=dm.widthPixels;
        int screenHeight=dm.heightPixels;

Android获取屏幕高度、标题高度、状态栏高度详解
http://www.iteye.com/topic/828830

如何设置屏幕方向?
可以在AndroidManifest.xml 文件中,通过<activity> 标记的screenOrientation 属性进行设定,例如:
<activity
	android:name=".SketchpadActivity"
	android:screenOrientation="landscape"/><!--让该Activity总是显示为横屏-->

screenOrientations属性共有7中可选值(常量定义在 android.content.pm.ActivityInfo类中 ) :
landscape:横屏(风景照) ,显示时宽度大于高度;
portrait:竖屏 (肖像照) , 显示时 高 度大于 宽 度 ;
user:用户当前的首选方向;
behind:继承Activity堆栈中当前Activity下面的那个Activity的方向;
sensor:由物理感应器决定显示方向,它取决于用户如何持有设备,当 设备 被旋转时方向会随之变化——在横屏与竖屏之间;
nosensor:忽略物理感应器——即显示方向与物理感应器无关,不管用户如何旋转设备显示方向都不会随着改变("unspecified"设置除外);
unspecified :未指定,此为默认值,由Android系统自己选择适当的方向,选择策略视具体设备的配置情况而定,因此不同的设备会有不同的方向选择;
也可以在代码中设置屏幕方向,例如:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏

如何判断横竖屏?
在activity中重写这个方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    if (this.getResources().getConfiguration().orientation ==
         Configuration.ORIENTATION_PORTRAIT) {//竖屏
         //doSomrthing
    } else {
        //横屏时dosomething
    }
}
每一次横屏和竖屏都会调用这个方法

如何实现国际化?
比如需要程序在中文和英文环境中切换,
首先在工程res文件夹中依次新建values-en和values-zh-rCN等资源文件夹,将string.xml文件翻译成英文,放入相应的资源文件夹内。
然后在模拟器主菜单中依次选择setting->Locale&Text->Select Locale,选择需要的语言即可。当找不到相应的语言系时,默认使用values文件夹下的string.xml
values目录名称与改写后对应的支持语言关系如下:
values-zh-rCN,简体中文
values-zh-rTW,繁体中文
values-ja,日文
values-en,英文
values-en-rUS,美式英文
values-en-rUK,英式英文

如何在程序中通过button切换中英文环境?
基本代码如下(按了button后需要退回到主菜单,然后再进入程序语言环境就变了):
locale=(Button)findViewById(R.id.locale);
        locale.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Resources res=getResources();
				Configuration config=res.getConfiguration();
				if(config.locale==Locale.SIMPLIFIED_CHINESE){
					config.locale=Locale.ENGLISH;
				}else{
					config.locale=Locale.SIMPLIFIED_CHINESE;
				}
				DisplayMetrics dm=res.getDisplayMetrics();
				res.updateConfiguration(config, dm);
			}
        	
        });


如何手动签名应用程序?
1,打包成未签名apk包
在工程上右击,选择Android Tools->Export Unsigned Application Package
2,生成密钥
打开cmd,并进入cd C:\Program Files\Java\jdk1.6.0_20\bin
keytool -genkey -v -keystore XXX.keystore -alias XXX.keystore -keyalg RSA -validity 20000
然后依次输入各项即可
3,开始签名
jarsigner -verbose -keystore XXX.keystore -signedjar 你的应用名称_signed.apk 你的应用名称.apk XXX.keystore
4,验证密钥(非必需,但建议)
jarsigner -verify -verbose -certs 你的应用名称_signed.apk

如何使用eclipse自动生成已验证的apk包?
如果觉得手动签名比较麻烦,那么使用自动签名吧。
在工程上右击,选择Android Tools->Export Application Package
然后依次填入各项,这里特别注意Keystore selection这一步,如果已生成keystore,则选第一项;如果还没有,则选第二项。
  • 大小: 5.2 KB
  • 大小: 9.2 KB
  • 大小: 3.1 KB
分享到:
评论
1 楼 brave2211 2013-12-03  
看得出作者是个有心人, 善于总结一些小的知识点.  有时候一个小的知识点能帮上大忙

相关推荐

    基于Android的记录点滴生活App设计与实现.pdf

    基于Android的记录点滴生活App设计与实现.pdf

    基于Android的儿童成长APP的设计与实现

    1、任务日历模块,可以对过去所有任务进行汇总,编辑修改所有任务,完成任务领取奖励。 2、每日任务新视觉,可以对每日任务进行删除,执行每日任务操作便捷。 3、专家推荐模块,了解最新幼教知识,统计阅读时长,...

    Android应用源码精致备忘录+课程表项目

    本项目是Android课表与备忘录的集成,内部主要用了sqlite,是学习Android sqlite与Android其他知识点的很好的一个项目。课表可记录自己的课程,可随时根据需要更新课表,备忘录可记录自己的生活点滴,是一个不错的...

    深入理解Android:卷I--详细书签版

     《深入理解android:卷1》是一本以情景方式对android的源代码进行深入分析的书。内容广泛,以对framework层的分析为主,兼顾native层和application层;分析深入,每一部分源代 码的分析都力求透彻;针对性强,...

    我对学习delphiTeacher的《delphi调用及封装Android原生控件》的学习和研究点滴体会之二

    学习和研究点滴体会之二  摘要:  本文为3月21日晚学习了delphiTeacher王老师的《delphi调用及封装Android原生控件》后的体会之二。  关于Android原生应用程序、Android原生窗体、Android原生窗体中的控件和...

    android 多任务的多线程断点续传的下载软件

    /* 点滴持续 下载引擎演示程序。更多代码在 https://gitee.com/drip_on/ldown_sample.git * ldown是一款跨平台多任务的多线程断点续传的下载软件, * 支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载;支持...

    poco相机 android v1.5.0

    2、照片自动美化处理:可以对照片即时进行颜色处理、特效、边框等美化功能,超过40种后期自动“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、高级PS美化模式:可在数十款特效美化...

    Android开发的多媒体备忘录(含代码)

    基于Android开发出来的一款多媒体备忘录,该作品曾获得过奖项,支持通过文本、语音、视频三种方法来记录生活中的点滴,附加送了源代码,

    Android代码-书签助手

    BookmarkHelper(书签助手)是一款Android平台下,浏览器书签转换工具类APP,运行时需要Root权限,目标全面兼容主流Android浏览器相互转换书签数据,暂未考虑支持iOS或桌面端。 使用举例:从Chrome浏览器中,提取...

    点滴音乐播放器

    支持从本地读取音乐文件然后显示到界面,歌曲的的上下曲 随机播放 顺序播放 单曲循环等控制 以及支持歌词的滚动显示(先确定本地文件中有歌词文件)

    最新 微信(Android) v6.1.0.56

    1.可以发语音、文字消息、表情、图片、视频。30M流量可以收发上千条语音,省电省流量。 2.朋友圈,跟朋友们分享生活点滴。 3.摇一摇、查看附近的人,世界不再有陌生人。 4.扫一扫,可以扫商品条码、图书封面、CD封面...

    poco相机 android v1.5.0_sp1

    2、照片自动美化处理:可以对照片即时进行颜色处理、特效、边框等美化功能,超过40种后期自动“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、高级PS美化模式:可在数十款特效美化...

    基于Android匿名社交论坛 作业.zip

    此外,这款应用还具有丰富的社交功能,如私信、关注、点赞等,用户可以在这里结识新的朋友,分享生活的点滴。同时,应用还有严格的内容审核机制,确保社区环境的健康和谐。在界面设计上,这款应用采用了简洁明了的...

    POCO相机 android v1.6.1_sp1

    2、照片自动美化处理:可以对照片即时进行颜色处理、特效、边框等美化功能,超过40种后期自动“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、高级PS美化模式:可在数十款特效美化...

    Android应用源码YiBo聚合微博客户端

    本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐微博;...

    Android应用源码YiBo聚合微博客户端.zip

    本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐...

    poco相机 android V1.0.4

    2、照片美化处理:可以对照片即时进行颜色处理、装饰、边框等美化功能,超过40种后期“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、一键多平台分享:可将照片一键分享到新浪微博...

    我的android学习记录

    个人在学习过程中,所记录的点滴,希望能被有需要的人拾起

    Android aidl的使用

    Android aidl的使用,实现跨进程的通信,初学,希望大家多多指教,大佬勿喷。

    android开发论文

    论文按照老师要求写的!有八九千字,废话有点多!可以选择不下!

Global site tag (gtag.js) - Google Analytics