android备忘录
1.跑马灯-滚动字幕 多用于广告,在屏幕上方滚动显示,可以是文字,图片等
#滚动字幕
TextView 中加(singleLine="true",ellipsize="marquee",
marqueeRepeatLimit="marquee_forever",focusable="true"
focusableInTouchMode="true")等属性
String html="中新网10月11日电,科学家<a href='http://www.google.com'>爱因斯坦</a>睡着了";
CharSequence charSequence=Html.fromHtml(html);//可以解析HTML
textView1.setText(charSequence);
textView1.setMovementMethod(LinkMovementMethod.getInstance());
2.
使用剪贴板传递数据:
ClipboardManager clipboardManager=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setText(someString);//复制到剪贴板
String clipmsg=clipboardManager.getText().toString();//取出内容
可以进行复杂数据的传输,如可序列化的对象:
ByteArrayOutputSream byteArray_os=new ByteArrayOutputStream();
String base64String="";
try{
ObjectOutputStream oos=new ObjectOutputStream(byteArray_os);
oos.writeObject(myData);
base64String=Base64.encodeToString(byteArray_os.toByteArray(),Base64.DEFAULT);//android.util.base64
oos.close();
}catch
3.
使用静态变量在Activity之间传递数据
MainActivity: public static String name="jack";
public static int age=23;
OtherActivity中可直接访问public的此变量
4.
短信接收者,(不创建Activity的话不会在启动器中显示图标)
public class SmsReceiver extends BroadcastReceiver{
public void onReceive(Context context,Intent intent){
//Sysout短信收到了
Object[] pdus=(Object[])intent.getExtras().get("pdus");//模版代码,getExtras返回类型为Bundle,pdus是电信规定的短信格式
for(Object pdu:pdus){
SmsMessage sms=SmsMessage.createFromPdu((byte[])pdu);
String body=sms.getMessageBody();
String sender=sms.getOriginatingAddress();
//syso
}}}}
记得加<receiver android:name=".SmsReceiver">...action...
intent-filter里面可以设置优先级priority,值越大优先级越高,系统短信应用似乎为0,因此可以使用abortBroadcast();来拦截短信通知。
适用于2.3,,4.1的代码好像名字有了变化,需要自己实验一下
5.RadioButton单选按钮是分组的即在<RadioGroup标签内的是一组
监听器有两种,一般将radioGroup绑定在OnCheckedChangeListener,注意导入的包为widget的而非compound的,另一种监听器即OnClickListener
6.图片比例
Drawable drawable=getResources().getDrawable(getResourceId(source));
if(source.equals("image3"))
drawable.setBounds(0,0,drawable.getIntrinsicWidth()/2,drawable.getIntrinsicHeight()/2);//将图片image3按照50%的比例压缩
7.页面左右滑动效果,添加<android.support.v4.view.ViewPager,此标签内部再添加<android.support.v4.view.PagerTitleStrip
8.
对话框Dialog
复写OnClickListener中的onClick方法,注意导入的包是什么,和Button的不一样
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("tips");
builder.setMessage("你确定要。。。?");
builder.setIcon(R.drawable.x);
AlertDialog alert=builder.create();
alert.show();
9.在Activity之间传递数据的方式如剪切板等,Intent(意图),还有一种比较实用的方式:就是全局对象,除非Android应用程序清除内存,否则全局对象将一直可以访问。import android.app.Application;
public class MyApp extends Application{
public void onCreate(){
super.onCreate();}
void setName(){...//写一些自定义的函数}}
在main activity里使用myApp=(MyApp...)getApplication();myApp.setName("jack");//调用自定义的函数进行对全局对象的修改,全局对象可以被任一个activity里直接访问
注意要在Manifest里application标签中注册,直接加入android:name=".MyApp"
10.ProgressBar的Style:默认为逆时针旋转的圆圈
xml里设置<ProgressBar
style="?android:attr/progressBarStyle此处接风格"
水平:Horizontal
以下圆圈:
小风格:Small 大风格Large
反向风格:Inverse,指颜色深一些
还有:Small.Inverse,Large.Inverse,其实看不出明显的区别
max=长度,200
progress="当前进度",如100
secondaryProgress第二进度
11.实现页面跳转到发短信系统页面:
在按钮监听器的 onClick方法中写如下代码:
Uri uri=Uri.parse("smsto://183029249282");
Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","The SMS text");
startActivity(intent);
实现跳转到拨号盘:
/** Create our Intent to call the Dialer */
/** Pass the Dialer the number 5551212 */
Intent DialIntent = new
Intent(Intent.DIAL_ACTION,Uri.parse("tel:5551212"));//貌似是ACTION_CALL
/** Use NEW_TASK_LAUNCH to launch the Dialer Activity*/
DialIntent.setLaunchFlags(Intent.NEW_TASK_LAUNCH );
/** Finally start the Activity */
startActivity(DialIntent);
12.
判断SD卡是否被挂载的两种方式:
1.简单:File f=new File("/sdcard/");
f.exists();
2:写一个监听函数,用来监听
private final BroadcastReceiver broadcastRec=new BroadcastReceiver(){
@Override
public void onReceiver(Context context,Intent intent){
if(intent.getAction().equals("android.intent.action.MEDIA_MOUNTED")){//SD 卡已经成功挂载
...}else if(intent.getAction().equals("android.intent.action.MEDIA_REMOVED")
||
intent.getAction().equals("android.intent.action.ACTION_MEDIA_UNMOUNTED")
||
intent.getAction().equals("android.intent.action.ACTION_MEDIA_BAD_REMOVAL")) {//各种未挂载状态
//无 SD 卡
}
}
};
13.
我们知道,listFiles()会列出当前目录下的文件,但是,另一个问题出来了,如果当前目录下文件杂乱无部分,而
我们又不想列出所有文件,
怎么办?FileFilter 提供了一个解决方法。
我们只需要实现 public abstract boolean accept
(File pathname)接口就可以了。
FileFilter filter = new FileFilter() {
public boolean accept (File file) {
if (file.isFile() && file.getAbsolutePath().toLowerCase().endsWith(".txt")) {
return true;
}
return false;
}
};
File[] files = file.listFiles(filter); 通过指定 URL 的图片,获取图片数据,并转换成 Android 的支持的图片格式,相关代码
如下:
// 显示网络上的图片
public static Bitmap returnBitMap(String url) {
Log.i("returnBitMap", "url=" + url);
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
} 多情况下,需要通过 POST 将本地的数据发送给服务器,如下是一段实际的代码
public void MyFunction{
HttpClient httpclient = new DefaultHttpClient();
//你的 URL
HttpPost httppost = new HttpPost("http://www.eoeandroid.com/post_datas.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
//Your DATA
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "eoeAndroid.com is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response;
response=httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} 重新启动应用,应用保存了我们输入的 Name 和 Password,现在来看看其实现的代码,在 DBSharedPreferences.java 文件
中,此文件的代码如下所示:
package us.imnet.iceskysl.db;
import Android.app.Activity;
import Android.content.SharedPreferences;
import Android.os.Bundle;
import Android.widget.EditText;
public class DBSharedPreferences extends Activity {
public static final String SETTING_INFOS = "SETTING_Infos";
public static final String NAME = "NAME";
public static final String PASSWORD = "PASSWORD";
private EditText field_name; //接收用户名的组件
private EditText filed_pass; //接收密码的组件
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Find VIew
field_name = (EditText) findViewById(R.id.name); //首先获取用来输入用户名的组件
filed_pass = (EditText) findViewById(R.id.password); //同时也需要获取输入密码的组件
// Restore preferences
SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); //获取一个 SharedPreferences 对象
String name = settings.getString(NAME, ""); //取出保存的 NAME
String password = settings.getString(PASSWORD, ""); //取出保存的 PASSWORD
//Set value
field_name.setText(name); //将取出来的用户名赋给 field_name
filed_pass.setText(password); //将取出来的密码赋给 filed_pass
}
om
.c
@Override
protected void onStop(){
super.onStop();
SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); //首先获取一个 SharedPreferences 对象
settings.edit()
.putString(NAME, field_name.getText().toString())
.putString(PASSWORD, filed_pass.getText().toString())
.commit();
} //将用户名和密码保存进去
}
通过上述代码可以看到,在 onCreate 中使用 findViewById 得到两个 EditView 后,使用 getSharedPreferences 取得
SharedPreferences 对象 settings,然后使用 getString 取得其中保存的值,最后使用 setText 将其值设置为两个 EditText 的
值。
而在程序运行onStop过程,也就是在程序退出时,首先使用getSharedPreferences得到settings,然后调用edit()方法使
其处于可以编辑状态,并使用putString将两个EditText中的值保存起来,最后使用commit()方法提交即可保存。
小知识:
SharedPreferences 保存到哪里去了?
SharedPreferences 是以 XML 的格式以文件的方式自动保存的,在 DDMS 中的 File Explorer 中展开到
/data/data/<package name>/shared_prefs 下,以上面这个为例,可以看到一个叫做 SETTING_Infos.xml 的文件
将其导出到设备中,可以打开这个文件,看到其代码内容为:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="PASSWORD">Password</string>
<string name="NAME">IceskYsl</string>
</map>
小知识:
我们可以通过「getXXX」函数,从 SharedPreferences 中读取不同类型的内容,例如,上面我们使用[
getString ]读取 String 类型的内容。
注意:
Preferences 只能在同一个包内使用,不能在不同的包之间使用。
前面介绍的 Shared Preferences 存储方式非常方便,但是其只适合存储比较简单的数据,如果需要存储更多的数
据,可行选择的方式有好几种,这里先给读者介绍文件存储的方法。
和传统的 Java 中实现 I/O 的程序类似,在 Android 中,其提供了 openFileInput 和 openFileOuput 方法读取设备
上的文件,下面看个例子代码,具体如下所示:
String FILE_NAME = “tempfile.tmp”; //确定要操作文件的文件名
// Create a new output file stream that’s private to this application.
FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); //初始化
// Create a new file input stream.
FileInputStream fis = openFileInput(FILE_NAME); //创建写入流
上述代码中两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出异常。需要提醒的是,
如果调用FileOutputStream 时指定的文件不存在,Android 会自动创建它。另外,在默认情况下,写入的时候会覆盖原
文件内容,如果想把新写入的内容附加到原文件内容后,则可以指定其mode为Context.MODE_APPEND。
注意:
默认情况下,使用 openFileOutput 方法创建的文件只能被其调用的应用使用,其他应用无法读取这个文件,如果需
要在不同的应用中共享数据,可以使用 Content Provider 实现,关于 Content Provider 我们将在稍后的内容中介绍。
小知识:
资源文件放在哪里?
如果你的应用需要一些额外的资源文件,例如,一些用来测试你写的音乐播放器是否可以正常工作的 MP3 文件,可
以将这些文件放在应用程序的/res/raw/下,如 mydatafile.mp3。那么就可以在你的应用中使用 getResources 获取资源
后,以 openRawResource 方法(不带后缀的资源文件名)打开这个文件,实现代码如下所示:
Resources myResources = getResources();
InputStream myFile = myResources.openRawResource(R.raw.myfilename);
除了前面介绍的读写文件外,Android 还提供了诸如 deleteFile、fileList 等方法来操作文件,不再赘述。 #点击按钮选择本地联系人(电话簿),button绑定一个onUpdateContact(View view){
startActivityForResult(new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);PICK_CONTACT_REQUEST);
//Pass in the Uri for all contacts,private static final int PICK_CONTACT_REQUEST = 0;is defined by you
} protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == PICK_CONTACT_REQUEST) { if (resultCode == RESULT_OK) {...}}}
别忘加android.permission.READ_CONTACTS
android备忘录的更多相关文章
- UI设计师的 Android 备忘录
Images and themes Nine-patch Colors Holo themes Naming conventions Naming conventions for drawables ...
- Android开发指南--0 总览
无意间发现一个网站,主打IOS方面的教程,然而作为一个Android开发者,我就找了下网站里有没有Android的教程,还真有,这里就翻译一下. 翻译目标教程:https://www.raywende ...
- android选择器汇总、仿最美应用、通用课程表、卡片动画、智能厨房、阅读客户端等源码
Android精选源码 android各种 选择器 汇总源码 高仿最美应用项目源码 android通用型课程表效果源码 android实现关键字变色 Android ViewPager卡片视差.拖拽及 ...
- [转] Android中的设计模式-备忘录模式
转自Android中的设计模式-备忘录模式 定义 备忘录设计模式的定义就是把对象的状态记录和管理委托给外界处理,用以维持自己的封闭性. 比较官方的定义 备忘录模式(Memento Pattern)又叫 ...
- java android 环境变量配置备忘录
java android 环境变量配置备忘录,全新重装系统要用到,备忘下来; JAVA_HOME D:\Java\jdk1.6.0_07 CLASSPATH .;%JAVA_HOME%\lib\dt ...
- 《Android源码设计模式》--状态模式--责任链模式--解释器模式--命令模式--观察者模式--备忘录模式--迭代器模式
[状态模式] No1: Wifi设置界面是一个叫做WifiSetting的Fragment实现的 No2: 在不同的状态下对于扫描Wifi这个请求的处理是完全不一样的.在初始状态下扫描请求被直接忽略, ...
- Android设计模式(十五)--备忘录模式
在Android中用于保存Activity状态的onSaveInstanceState()和恢复Activity状态的onRestoreInstanceState(), 这样的算不算是一种备忘录模式呢 ...
- 《Android Studio实战 快速、高效地构建Android应用》--五、备忘录实验(1/2)
通过开发App熟悉Android Studio的用法 开发一款用于管理备忘事项列表的App,核心功能: 创建.删除备忘 将某些备忘标记为重要(左侧带颜色标签突出显示) 涉及:操作栏菜单.上下文菜单.用 ...
- android完整智能家居、备忘录、蓝牙配对、3D动画库、购物车页面、版本更新自动安装等源码
Android精选源码 app 版本更新.下载完毕自动自动安装 android指针式分数仪表盘 ANdroid蓝牙设备搜索.配对 Android 图片水印框架,支持隐形数字水印 android3D旋转 ...
随机推荐
- 【转】【MySQL】mysql 通过bin-log恢复数据方法详解
mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这 ...
- Core Web API上使用Swagger提供API文档
在ASP.NET Core Web API上使用Swagger提供API文档 我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的AP ...
- Atom插件安装
Atom插件安装 Atom狂拽炫酷插件之activate-power-mode 引语: 在前文中提到了关于插件的安装,似乎简单易操作,不过最后我发现是我自己想简单了. activate-power-m ...
- js的日期控件
jeDate使用的时候,如果不是直接放在html中而是通过Js加载进去的,那么最好来个延迟. http://www.sucaijiayuan.com/Js/DateTime/ http://www.c ...
- XML-RPC远程方法调用
一.简介 XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用. 它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列 ...
- Ueditor 上传图片 如何设置只显示 本地上传
我这个是自问自答,其实很简单.只要按照以下方式修改就可以了. 找到image.html 将以下代码 <div id="tabHeads" class="tabhea ...
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android=&q ...
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便),curl_setopt 是php的一个扩展库 使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2) ...
- Dubbo系列(2)_RPC介绍
一.本文目的 主要介绍RPC的一些概念和应用. 二.为什么要介绍RPC DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治 ...
- lucene-查询query->PhraseQuery多关键字的搜索
用户在搜索引擎中进行搜索时,常常查找的并非是一个简单的单词,很有可能是几个不同的关键字.这些关键字之间要么是紧密相联,成为一个精确的短 语,要么是可能在这几个关键字之间还插有其他无关的关键字.此时,用 ...