当前位置:  编程技术>移动开发
本页文章导读:
    ▪第三章:取得联系人文件        第三章:取得联系人资料 效果:main.xml <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android..........
    ▪ FileFilter 选择性的回到目录文件        FileFilter 选择性的返回目录文件 FileFilter filter1 = new FileFilter() {public boolean accept (File file) {if (file.isFile() && file.getAbsolutePath().toLowerCase().endsWith(".pdf")) {return true;}return false;}};File[] files = file.l.........
    ▪ Android 非一般用法-来自中国移动开发社区       Android 特殊用法--来自中国移动开发社区 1.让一个图片透明: 复制到剪贴板   Java代码 Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);buffer.eraseColor(Color.TRANSPARENT);    2..........

[1]第三章:取得联系人文件
    来源: 互联网  发布时间: 2014-02-18
第三章:取得联系人资料
效果:













main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/name"
android:layout_width="92px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="24px"
android:layout_y="35px"
>
</EditText>
<EditText
android:id="@+id/number"
android:layout_width="268px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="23px"
android:layout_y="87px"
>
</EditText>
<Button
android:id="@+id/sreach"
android:layout_width="57px"
android:layout_height="wrap_content"
android:text="&#25628;&#32034;"
android:layout_x="26px"
android:layout_y="142px"
>
</Button>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="21px"
android:layout_y="202px"
>

</TextView>
</AbsoluteLayout>



AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="provider.test"
      android:versionCode="1"
      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        
        <activity android:name=".ProviderTest"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

	<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
</manifest> 




package provider.test;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class ProviderTest extends Activity {
	private EditText name;
	private EditText number;
	private Button search;
	private TextView text;
	private static final int PICK_CONTACT_SUNACTIVITY=2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /** 载入Main.xml*/
        setContentView(R.layout.main);
        /** 通过id找到组件*/
        name=(EditText)findViewById(R.id.name);
        number=(EditText)findViewById(R.id.number);
        text=(TextView)findViewById(R.id.text);
        search=(Button)findViewById(R.id.sreach);
        /** 设置button按钮点击事件*/
        search.setOnClickListener(new Button.OnClickListener(){
        	public void onClick(View v){
        		 /** 构建uri来取的联系人数据位置*/
        		Uri uri=Uri.parse("content://contacts/people");
        		 /** 通过intent来取的联系人数据返回的所选的值*/
        		Intent intent=new Intent(Intent.ACTION_PICK,uri);
        		/** 打开新的Activity并期望Activity返回值*/
        		startActivityForResult(intent, PICK_CONTACT_SUNACTIVITY);
        	}
        });
    }
    
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
    	switch(requestCode){
    	case PICK_CONTACT_SUNACTIVITY:
    		Cursor c=null;
    		Cursor phone =null;
    		/** 获得uri对象*/
    		final Uri uriRet=data.getData();
    		if(uriRet!=null){
    			try {
    				/** 必须要有android.permission.READ_CONTACTS权限*/
    				c=managedQuery(uriRet, null, null, null, null);
    				/**将Currsor一道数据最前端*/
    				c.moveToFirst();
    				/**获得联系人名字*/
    				String strname=c.getString(c.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME));
    				
    				/**(如果你使用的是2.0或2.0以上的API那么获得联系人号码)
    				 * 
    				 * 获取联系人的ID号,在SQLite中的数据库ID
    				 * */
    				String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
    				phone = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "  
    				         + contactId, null, null);
    				 String strPhoneNumber=null;
    				 phone.moveToFirst();
    				 /**获得联系人号码*/
    				      strPhoneNumber = phone.getString(phone.getColumnIndex (ContactsContract.CommonDataKinds.Phone.NUMBER)); 
    				      /**设置两个EditText参数*/
    				name.setText(strname);
    				number.setText(strPhoneNumber);
				} catch (Exception e) {
					 /**将错误信息显示出来*/
					text.setText(e.toString());
					e.printStackTrace();
				}finally{
					 /**关闭对象*/
					phone.close();
					c.close();
				}
    		}
    		break;
    	}
    	super.onActivityResult(requestCode, resultCode, data);
    }
}



使用Content Provider

查询所有通讯录数据:

content://contacts/people

查询通讯录的特定联系人ID:10

content://contacts/people/10

修改Content provider里的数据

ContentResolver.update();

添加一项数据进入 Content Provider

ContentResolvert.insert();

将数据存储至Content Provider:

ContentResolver().openOutputStream();

自Provider以删除一笔数据:

ContentResolver.delete();

    
[2] FileFilter 选择性的回到目录文件
    来源: 互联网  发布时间: 2014-02-18
FileFilter 选择性的返回目录文件

FileFilter filter1 = new FileFilter() {
public boolean accept (File file) {
if (file.isFile() && file.getAbsolutePath().toLowerCase().endsWith(".pdf")) {
return true;
}
return false;
}
};
File[] files = file.listFiles(filter1);

 

 

只返回当前目录下的pdf文件!

 

 


    
[3] Android 非一般用法-来自中国移动开发社区
    来源: 互联网  发布时间: 2014-02-18
Android 特殊用法--来自中国移动开发社区

1.让一个图片透明:

复制到剪贴板   Java代码
  • Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);buffer.eraseColor(Color.TRANSPARENT);   
  • 2.直接发送邮件:

    复制到剪贴板   Java代码
  • Intent intent =  new  Intent(Intent.ACTION_SENDTO,  Uri .fromParts( "mailto" ,  "test@test.com" ,  null ));    
  • intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
  • context.startActivity(intent);   
  • 3.程序控制屏幕变亮:

    复制到剪贴板   Java代码
  • WindowManager.LayoutParams lp = getWindow().getAttributes();    
  • lp.screenBrightness =  100  /  100 .0f;    
  • getWindow().setAttributes(lp);  
  • 4.过滤特定文本

    复制到剪贴板   Java代码
  • Filter filter = myAdapter.getFilter();    
  • filter.filter(mySearchText);   
  • 5.scrollView scroll停止事件

    复制到剪贴板   Java代码
  • setOnScrollListener( new  OnScrollListener(){       
  • public   void  onScroll(AbsListView view,  int  firstVisibleItem,  int  visibleItemCount,  int  totalItemCount) {         
  • // TODO Auto-generated method stub    }       
  • public   void  onScrollStateChanged(AbsListView view,  int  scrollState) {         
  • // TODO Auto-generated method stub         
  • if (scrollState ==  0 ) Log.i( "a" ,  "scrolling stopped..." );    }  });}   
  • 6. 对于特定的程序 发起一个关联供打开

    复制到剪贴板   C/C++代码
  • Bitmap bmp = getImageBitmap(jpg);    
  • String path = getFilesDir().getAbsolutePath() +  "/test.png" ;    
  • File file =  new  File(path);    
  • FileOutputStream fos =  new  FileOutputStream(file);    
  • bmp.compress( CompressFormat.PNG, 100, fos );    
  •   fos.close();    
  •      
  •    Intent intent =  new  Intent();    
  •    intent.setAction(android .content.Intent.ACTION_VIEW);    
  •    intent.setDataAndType(Uri .fromFile( new  File(path)),  "image/png" );    
  •    startActivity(intent);    
  • 对于图片上边的不适用索引格式会出错。    
  • Intent intent =  new  Intent();     
  • intent.setAction(android .content.Intent.ACTION_VIEW);     
  • File file =  new  File( "/sdcard/test.mp4" );     
  • intent.setDataAndType(Uri .fromFile(file),  "video/*" );     
  • startActivity(intent);    
  •   
  • Intent intent =  new  Intent();     
  • intent.setAction(android .content.Intent.ACTION_VIEW);     
  • File file =  new  File( "/sdcard/test.mp3" );     
  • intent.setDataAndType(Uri .fromFile(file),  "audio/*" );     
  • startActivity(intent);   
  • 7.设置文本外观

    复制到剪贴板   Java代码
  • setTextAppearance(context, android .R.style.TextAppearance_Medium);    
  • android :textAppearance= "?android :attr/textAppearanceMedium"   
  • 8.设置单独的发起模式:

    复制到剪贴板   Java代码
  • <activity           
  •   android :name= ".ArtistActivity"            
  •   android :label= "Artist"            
  •   android :launchMode= "singleTop" >       
  •   </activity>    
  •   
  • Intent i =  new  Intent();           
  •    i.putExtra(EXTRA_KEY_ARTIST, id);          
  •     i.setClass( this , ArtistActivity. class );           
  •     i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);          
  •      startActivity(i);   
  • 9.创建一个圆角图片
    这个的主要原理其实就是利用遮罩,先创建一个圆角方框 然后将图片放在下面:

    复制到剪贴板   Java代码
  • Bitmap myCoolBitmap = ... ;    
  •        int  w = myCoolBitmap.getWidth(), h = myCoolBitmap.getHeight();    
  •       Bitmap rounder = Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888);    
  •       Canvas canvas =  new  Canvas(rounder);       
  •       Paint xferPaint =  new  Paint(Paint.ANTI_ALIAS_FLAG);    
  •       xferPaint.setColor(Color.RED);    
  •       canvas.drawRoundRect( new  RectF( 0 , 0 ,w,h),  20 .0f,  20 .0f, xferPaint);        
  •       xferPaint.setXfermode( new  PorterDuffXfermode(PorterDuff.Mode.DST_IN));   
  • 复制到剪贴板   Java代码
  • //然后呢实现    
  • canvas.drawBitmap(myCoolBitmap,  0 , 0 ,  null );    
  • canvas.drawBitmap(rounder,  0 ,  0 , xferPaint);    
  • 10.在notification 上的icon上加上数字 给人提示有多少个未读

    复制到剪贴板   Java代码
  • Notification notification =  new  Notification (icon, tickerText, when);    
  • notification .number =  4 ;   
  • 11背景渐变:
    首先建立文件drawable/shape.xml

    复制到剪贴板   Java代码
  • <?xml version= "1.0"  encoding= "utf-8" ?>    
  • <shape xmlns:android = "http://schemas.android .com/apk/res/android "  android :shape= "rectangle" >    
  •     <gradient android :startColor= "#FFFFFFFF"  android :endColor= "#FFFF0000"     
  •             android :angle= "270" />    
  • </shape>    
  • 在该文件中设置渐变的开始颜色(startColor)、结束颜色(endColor)和角度(angle)

    接着创建一个主题values/style.xml

    复制到剪贴板   Java代码
  • <?xml version= "1.0"  encoding= "utf-8" ?>    
  • <resources>    
  • <style name= "NewTheme"  parent= "android :Theme" >    
  • <item name= "android :background" > @drawable /shape</item>    
  • </style>    
  • </resources>   
  • 然后在AndroidManifest.xml文件中的application或activity中引入该主题,如:

    复制到剪贴板   Java代码
  • <activity android :name= ".ShapeDemo"  android :theme= "@style/NewTheme" >    
  • 该方法同样适用于控件  http://17f8.cn/trackback.php?tbID=259&extra=9d45e9

    12. 储存数据 当你在一个实例中保存静态数据,此示例关闭后 下一个实例想引用 静态数据就会为null,这里呢必须重写applition

    复制到剪贴板   Java代码
  • public   class  MyApplication  extends  Application{       
  •     private  String thing =  null ;       
  •     public  String getThing(){           
  •       return  thing;       
  •      }       
  •       public   void  setThing( String thing ){          
  •        this .thing = thing;    }    
  •       }    
  •        public   class  MyActivity  extends  Activity {       
  •        private  MyApplication app;       
  •        public   void  onCreate(Bundle savedInstanceState) {           
  •        super .onCreate(savedInstanceState);           
  •       app = ((MyApplication)getApplication());           
  •       String thing = app.getThing();       
  •       }    
  •       }  

  •     
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android根据电话号码获得联系人头像实例代码 iis7站长之家
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3