日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android项目笔记整理(1)

發布時間:2025/3/13 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android项目笔记整理(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第二部分  工作項目中以及平時看視頻、看書或者看博客時整理的個人覺得挺有用的筆記

?

1.Activity界面切換:?
??if(條件1){?
? ? ? ?setContentView(R.layout.main);?
? }else{?
? ? ? ?setContentView(R.layout.other);?

} 2.帶有返回的Activity消息傳遞:
MainActivity中核心代碼如下:
????Button.setOnClickListener(listener);
????????? View.OnClickListener ? listener=new OnClickListener(){
???????? Public void ? onClick(View ? v){
???????????? String ? msg=EditText.getText().toString().trim();
???????????? Intent ? intent=new ? Intent();
???????????? intent.setClass(MainActivity.this,OtherActivity.class);
???????????? Bundle ?bundle=new ?Bundle();
???????????? bundle.putString(“msg”,msg);
???????????? intent.putExtras(bundle);
???????????? startActivityForResult(intent , requestCode);
? ? ? ?}
? }
Public ?void ? onActivityResult(int requestCode,int resultCode, Intent data){
? ? switch(條件:判斷請求Code與響應Code){
????case ? 判別選項:
???????? Bundle ? bundle=data.getExtras();
???????? String ? ?msg=bundle.getString(“msg”);
???????? 處理得到的msg;
? ? }
}
OtherActivity中的核心代碼:
? ? ?Bundle ? bundle=this.getIntent().getExtras();
? ? ?String ? msg=bundle.getString(“msg”);
????? ? ?處理msg;
? ? ?button.setOnClickListener(new ?View.OnClickListener(
? ??????public ? void ? onClick(View ?v){
? ? ? ? ???? ? ?OtherActivity.this.setResult(resultCode ?,OtherActivity.this.getIntent());
? ? ?????}
? ? ?));
3.發送廣播Broadcast?
MainActivity中的核心代碼如下:?
????protected ?void ?onCreate(Bundle ?savedInstanceState){?
????啟動服務: Intent ? intent=new ?Intent(MainActivity.this,MyService.class);?
? ? ??????????? ? ? intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);?
???????????????? ? ?startService(intent);??
????停止服務: Intent ?intent=new Intent(MainActivity.this,MyService.class);?
? ? ??????????? ? ? boolean ?isYes = stopService(intent);?
????}?
????public ?void ?onResume(){?
???????????? ??super.onResume();?
注冊廣播:IntentFilter ?intentFilter=new IntentFilter(MyService.FLAG);?
? ? ? ? ?? ? ??MyBroadcastReceiver ?mReceiver=new MyBroadcastReceiver();?
???????????? ?registerReceiver(mReceiver,intentFilter);?
????}?
????public ?void ?onPause(){?
??????????????super.onPause();?
取消廣播:MyBroadcastReceiver ?mReceiver=new MyBroadcastReceiver();?
???????????? ??unregisterReceiver(mReceiver);?
????}?

MyService中的核心代碼:?
????public ?int ?onStartCommand(Intent ?intent,int flags,int startId){?
????????新建個線程,用來處理服務;?
????創建意圖:Intent ?intent=new ?Intent(FLAG);?
? ? ????????????? ? ? intent.putExtra("msg",MSG);?
? ? ??發送廣播: sendBroadcast(i);?
????}??
????public ?void ? onDestroy(){?
?????????flag=false;?
???????? ?super.onDestroy();?
????}?

MyBroadcastReceiver中的核心代碼:?
????public ? void ?onReceive(Context ?context,Intent ?intent){?
?????????Bundle ?bundle=intent.getExtras();?
???????? ?String ?msg=bundle.getString("msg");?
???????? ?處理msg;?
????}?
4.利用廣播查看手機電量?
MainActivity中的核心代碼:?
? ????int level;//當前電量值?
? ????int scale;//總的電量值?
? ????Handler ?hd=new Handler(){?
?????????public void handleMessage(Message msg){?
??????????????switch(msg.what){?
???????????????????處理消息;?
? ? ? ? ? ? ? ?}?
? ? ? ? ?}?
}? BroadcastReceiver ?br=new BroadcastReceiver(){ ???????? ?public void onReceive(Context context,Intent intent){?
???????? ?? ? ?String s=intent.getAction();?
?????????????? ?if(Intent.ACTION_BATTERY_CHANGED.equals(s)){?
???????????????????? level=intent.getIntExtra("level",0);?
???????????????????? scale=intent.getIntExtra("scale",100);?
???????????????????? hd.sendEmptyMessage(0);?
? ? ? ? ? ? ? ?}?
? ? ? ? ? }?
? ? ??};?
? ? ??public ?void ?onCreate(Bundle ?savedInstanceState){?
????????????注冊廣播:MainActivity.this.registerReceiver(br,new IntentFilter(Intent.ACTIVITY_BATTERY_CHANGED));?
? ? ??}?
5.使用上下文菜單?
public void onCreate(Bundle savedInstanceState){?
???? 為相應的組件注冊上下文菜單:?
???? this.registerForContextMenu(findViewById(R.id.EditText01));?
}?
public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){?
???? menu.add(組號,菜單號,順序號,R.string.title);?
}?
public ?boolean ?onContextItemSelected(MenuItem mi){?
???? switch(mi.getItemId()){?
???????? case MENU1:?
???????? case MENU2:?
?? ? ?????????????處理菜單選中事件;?
? ? ? ? ? ? ? ???break;?
} } 6.添加鏈接事件?
? ? ?Linkify.addLinks(TextView,Linkify.WEB_URLS|Linkfy.EMAIL_ADDRESSED|Linkify.PHONE_NUMBERS);?
7.發送Email?
MainActivity中的核心代碼:?
????private Cursor ?cursor;?
????private ContactsAdapter ?myCa;?
????static final String[] PEOPLE_PROJECTION={?
???????? Contacts.People._ID,//聯系人的id?
???????? Contacts.People.PRIMARY_PHONE_ID,//電話id?
???????? Contacts.People.TYPE,?
???????? Contacts.People.NUMBER,//號碼?
???????? Contacts.People.LABEL,//標簽?
???????? Contacts.People.NAME?
????};?
????protected void onCreate(Bundle savedInstanceState){?
獲取內容解析:ContentResolver ?content=getContentResolver();?
?? ????????????????? ?cursor=content.query(Contacts.People.CONTENT_URI,PEOPLE_PROJECTION,?
????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null,null,Contacts.People.DEFAULT_SORT_ORDER);?
?? ? ?????????????????myCa=new ?ContactsAdapter(this,cursor);?
???????????????????? ??autoCompleteTextView.setAdapter(myCa);?
???????????????? ? ? ? autoCompleteTextView.setOnItemClickListener(?
? ? ? ? ? ? ? ? ? ? ?????????new AdapterView.OnItemClickListener() {?
???????????????????????????????????? public void onItemClick(AdapterView<?> parent, View view,? int position, long id){?
???????????????????????????????????????? Cursor ?c=myCa.getCursor();?
???????????????????????????????????????? c.moveToPosition(position);?
?????????? 獲得聯系人的電話:? String number=c.getString(c.getColumnIndexOrThrow(Contacts.People.Number));?
? ? ? ? ? ? ? ? ? ? ? ???????});?
????????????????????????}?
ContactsAdapter中的核心代碼:?
????ContentResolver ?myCr;?
????public ContentResolver(Context context,Cursor c){?
??????????myCr=context.getContentResolver();?
????}?
????public View newView(Context context, Cursor cursor, ViewGroup parent) {?
???????? final LayoutInflater myLi=LayoutInflater.from(context);?
???????? final TextView tv=(TextView)myLi.inflate(android.R.layout.simple_dropdown_item_1line, parent,false);?
???????? tv.setText(cursor.getColumnIndexOrThrow(Contacts.People.NAME));? ?
???????? return tv;?
????}?
????public void bindView(View view, Context context, Cursor cursor) {?
???????? ((TextView)view).setText(cursor.getString(cursor.getColumnIndexOrThrow(Contacts.People.NAME)));??
????}?
????public CharSequence convertToString(Cursor cursor) {?
???????? String str=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.People.NAME));?
???????? return str;?
????}?
????public Cursor runQueryOnBackgroundThread(CharSequence constraint) {?
???????? if(getFilterQueryProvider()!=null)?
???????????? return getFilterQueryProvider().runQuery(constraint);?
???????? StringBuilder sb=new StringBuilder();?
???????? String[] str=null;?
???????? if(constraint!=null){?
? ? ? ? ????? sb.append("UPPER(");?
???????? ????sb.append(Contacts.People.NAME);?
???????? ????sb.append(") GLOB ?");?
???????????? str=new String[]{constraint.toString().toUpperCase()+"*"};? ?
???? ????}? ?
????????return myCr.query(Contacts.People.CONTENT_URI, MainActivity.PEOPLE_PROJECTION,sb==null?null:sb.toString(), str, Contacts.People.DEFAULT_SORT_ORDER);?
????}?
需要添加權限 ?<uses-permission android:name="android.permission.READ_CONTACTS"/>?

8.當電話打進來時監聽電話狀態并回復短信消息?
MainActivity中的核心代碼:?
????Handler hd=new Handler(){?
? ? ????public void handleMessage(Message msg){?
???????????? switch(msg.what){?
???????????????? case 0:?
???????????????? ?? ?Bundle b=msg.getData();?
???????????????? ?? ?String incomingNumber=(String)b.get("number");?
???????????????? ?? ?SmsManager smsManager=SmsManager.getDefault();?
???????????????? ?? ?PendingIntent pi=PendingIntent.getBroadcaset(context,0,new Intent(),0);?
???????????????? ?? ?smsManager.sendTextMessage(incomingNumber,null,msg,pi,null);?
????????????}?
? ? ? ?}?
? ?}?
????????????protected void onCreate(Bundle savedInstance){?
監聽電話狀態:myPhoneStateListener ?mPSL=new myPhoneStateListener();?
???????????????? ?? ?TelephonyManager tm=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);?
???????????????? ?? ?tm.listen(mPSL,PhoneStateListener.LISTEN_CALL_STATE);?
????????????}?
內部類:public class myPhoneStateListener ?extends PhoneStateListener{?
???????????????? ?? ?public void onCallStateChanged(int state,String incomingNumber){?
???????????????????????? switch(state){?
???????????????????????????? case TelephonyManager.CALL_STATE_IDLE:?
?????????????????????????????????????Bundle bundle=new Bundle();?
???????????????????????????????? ?? ?bundle.putString("number",incomingNumber);?
?? ?????????????????????????????????Message m=new Message();?
?? ?????????????????????????????????m.what=1;?
?? ?????????????????????????????????m.setData(bundle);?
?? ?????????????????????????????????hd.sendMessage(m);?
? ? ? ? ? ? ? ? ????????????}?
? ? ? ? ? ? ????????????}?
? ? ? ?????????}?

9.利用絕對布局移動圖片框?
MainActivity中的核心代碼:?
????DisplayMetrics ?dm=new DisplayMetrics();?
????getWindowManger().getDefaultDisplay().getMetrix(dm);?
????int screenHeight=dm.heightPixels;?
????int screenWidth=dm.widthPixels;?
????ImageView.setLayoutParams(new AbsoluteLayout.LayoutParams(Image_Width,Image_Height,Image_X,Image_Y));?

10.發送短信息?
MainActivity中的核心代碼:?
判斷是否為合法電話號碼,返回boolean: PhoneNumberUtils.isGlobalPhoneNumber(numberStr); ????PendingIntent pi=PendingIntent.getActivity(this,0,new Intent(this,MainActivity.class),0);?
????SmsManager ?sms=SmsManager.getDefault();?
sms.sendTextMessage(phoneNumber,null,smsBody,pi,null); 11.代碼中添加選項菜單
MainActivity中的代碼如下:
public boolean onCreateOptionMenu(Menu menu){
? ? SubMenu subMenuGender=menu.addSubMenu(上一級菜單ID,子菜單項ID,子菜單排序序號,子菜單標題);
? ? subMenuGender.setIcon(R.drawable.gender);//設置菜單圖標
? ? MenuItem ?male?=?subMenuGender.add(菜單組號,子菜單號,序號,標題);
? ? male.setChecked(true); ?//子菜單被選中
? ? OnMenuItemClickListener ?lsn=new OnMenuItemClickListener(){
???????? public boolean onMenuItemClick(MenuItem item){
???????????? 子菜單項單擊事件;
? ? ? ? ?}
? ? }
}
public boolean onOptionsItemSelected(MenuItem mi){
????int id=mi.getItemId();
???? 被選中事件;
}
? 12.打電話
獲取電話號碼:String number=EditText.getText().toString().trim();
??????????????????????判斷是否為合法電話號碼;
????????????打電話:Intent intent=new Intent("android.intent.action.CALL",Uri.parse("tel://"+number));
????????????? ? ? ?startActivity(intent);
? 13.設置手機情景模式
獲得震動服務: Vibrator vibrator=(Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
? ? ? ?開啟震動: vibrator.vibrate(new long[]{100,10,100,1000},0);
? ? ? ?取消震動: vibrator.cancel();

設置情景模式: AudioManager ?audioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
?設置靜音: ? ? ?audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
設置音量:?? ?audioManager.getStreamVolume(AudioManager.STREAM_RING);
? 14.訪問APK中的資源文件
String result=null;
try{
? ? InputStream ?in=this.getResources().getAssets().open(fileName);
? ? int ch=0;
? ? ByteArrayOutputStream ?baos=new ByteArrayOutputSream();
? ? while((ch=in.read())!=-1){
?????????baos.write(ch);
? ? }
? ? byte[] buff=baos.toByteArray();
? ? baos.close();
? ? in.close();
? ? result=new String(buff,"GB2312");
? ? result=result.replaceAll("\\r\\n","\n");
}catch(Exception e){
? ? Toast.makeText(this,"對不起,沒有找到指定文件",Toast.LENGTH_SHORT).show();
}
? 15.SDcard中文件操作
? ? File rootFile=new File("/sdcard");
? ? File[] files=rootFile.listFiles();
? ? file.delete();
? ? file.isDestory();
? ? file.length();
? ? file.getName();
需要加上操作權限
? ? <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
? 16.修改SDcard中文件的名字
MainActivity中的核心代碼:
public Dialog onCreateDialog(int id){
????Dialog result=null;
???? switch(id){
???????? case 0:
???????????? AlertDialog.Builder b=new AlerDialog.Builder(this);
?? ??????????b.setItems(null,null);
???????? ?? ? b.setCancelable(false);
???????????? gmDialog=b.create();
???? ???????? result=gmDialog;
?????}
????return result; } public void onPrepareDialog(int id,final Dialog dialog){
???? switch(id){
???????? case 0:
設置對話框界面: dialog.setContentView(R.layout.dialog); ????????????????button.setOnClickListener(new ....{
???????????????????? String newName=et.getText().toString().trim();
???????????????????? File xgf=new File(leavePath);
????????????????????String newPath=xgf.getParentFile().getPath()+"/"+newName;
??重命名文件: xgf.renameTo(new File(newPath));
??取消對話框: dialog.cancel();
? ? ? ? ? ? ? ?})
? ? ? ? }
}
?
17.讀取SDcard的使用情況信息
判斷SDcard是否裝載:
????裝載:Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
未裝載:Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)
獲取存儲根目錄文件: File path=Environment.getExternalStorageDirectory(); ???????????StatFs ?sf=new StatFs(path.getPath());
獲取SDcard總容量: long total=sf.getTotalBytes(); 獲取sdcard可用容量: long available=sf.getFreeBytes(); ???????? ??String totalSize=total/1024>=1024?total/1024/1024+"MB":total/1024+"KB";
?
18.接收短信息
class ?MyReceiver extends BroadcastReceiver{
? ? public void onReceive(Context context,Intent intent){
?????????if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
???????????????Bundle bundle=intent.getExtras();
???????????????if(bundle!=null){
????????????????????Object[] obj=(Object[])bundle.get("pdus");
???????????????????? SmsMessage[] sm=new SmsMessage[obj.length];
????????????????????for(int i=0;i<obj.length();i++){
?? ??????????????????????sm[i]=SmsMessage.createFromPdu((byte[])obj[i]);
? ? ? ? ? ? ? ?? ? ??}
獲取發信人的手機號: String numComing=sm[i].getDiplayOriginatingAddress(); 獲取短消息內容:? String smsBody=sm[i].getMessageBody(); ? ? ? ?????} ?
? ? ?}
}
?
19.查看運行的進程數量
更新ListView的數據信息:? listView.invalidateViews(); 查看進程:
????try{
? ??????ActivityManager am=(ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE);
????? ? List<ActivityManager.RunningTaskInfo> list=am.getRunningTasks(20);
? ??????for(int i=0;i<list.size();i++){
進程信息: listArray.add(i+"."+list.get(i).baseActivity.getClassName()+",ID="+list.get(i).id); ? ??????}
????}
? 20.改變屏幕方向
獲取屏幕方向:
? ? if(getRequestedOrientation()==-1){
?????????無法區分橫豎屏;
? ? }else if(getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
?????????橫屏;
? ? }else if(getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_PORTARIT){
?????????豎屏;
? ? }

設置豎屏: MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 設置橫屏: MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
public void onConfigurationChanged(Configuration config){
????if(config.orientation==Configuration.ORIENTATION_LANDSCAPE){
?????????處理橫屏事務;
? ? ?}else if(config.orientation==Configuration.ORIENTATION_PORTRAIT){
????????? 處理豎屏事務;
? ? ?}
}
?
21.讀取SDcard中的文件內容
? ? String result=null;
? ? try{
?????????File f=new File("/sdcard"+fileName);
???????? ?byte[] buff=new byte[(int)f.length];
????????? FileInputStream fin=new FileInputStream(f);
????????? fin.read(buff);
?????????fin.close();
????????? result=new String(buff,"GB2312");
???????? ?result=result.replaceAll("\\r\\n","\\n");
? ? }catch(Exception e){
????????? 異常處理;
? ? }
?
22.傳感器應用
獲取傳感器服務: SensorManager sm=(SensorManager)getSystemService(Context.SENSOR_SERVICE); 獲取音頻管理服務:
? ? try{
? ? ? ? AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
???????if(am!=null){
獲取響鈴模式: int msg=am.getRingerMode(); ? ? ? ? }
? ? }
? ? switch(msg){
? ??????case AudioManager.RINGER_MODE_NORMAL:
??????????????正常模式;
? ??????case AudioManager.RINGER_MODE_SILENT:
??????????????靜音模式;
? ??????case AudioManager.RINGER_MODE_VIBRATE:
??????????????震動模式;
? ? }
傳感器監聽: private SensorListener??mySensorListener?=?new??SensorListener(){ ???? public void onSensorChanged(int sensor,float[] values){
???? ????????float yaw=values[SensorManager.DATA_X];
???????? ?? ?float pitch=values[SensorManager.DATA_Y];
? ???????????float row=values[SensorManager.DATA_Z];
設置響鈴模式: ???????? ?? ?am.setRingerMode(AudioManager.RINGER_MODE_NORMAL); ? ? ??}
???? public void onAccuracyChanged(int sensor,int accuracy){ } } 注冊傳感器監聽:
protected void onResume(){
? ? ?super.onResume();
? ? ?sm.registerListener(mySensorListener,SensorManager.SENSOR_ORIENTATION?,?SensorManager.SENSOR_DELAY_NORMAL);
}
取消傳感器監聽:
protected void onPause(){
????super.onPause();
????sm.unregisterListener(mySensorListener);
}
? 23.進度條調節音量
獲取音頻服務: AudioManager ?am=(AudioManager)this.getSystemService(Context.AUDIO_SERVICE); 獲取進度條: final ProgressBar pb=(ProgressBar)this.findViewById(R.id.ProgressBar01); 獲取當前音量: int volume=am.getStreamVolume(AudioManager.STREAM_RING); ????pb.setMax(70);
????pb.setProgress(volume*10);

增加音量: am.adjustVolume(AudioManager.ADJUST_RAISE,0); ????volume=am.getStreamVolume(AudioManager.STREAM_RING);
????pb.setProgress(volume*10);
減少音量: am.adjustVolume(AudioManager.ADJUST_LOWER,0); ? 24.利用SurfaceView顯示圖像
public class MySurface extends SurfaceView implements SurfaceHolder.Callback{
????MainActivity activity;
???? Paint paint;
??? public MySurfaceView(MainActivity activity){
???????? super(activity);
?? ??????this.activity=activity;
為SurfaceView添加回調事件:
? ? ? ? ??this.getHolder().addCallback(this);
?? ??????paint=new Paint();
?? ??????paint.setAntiAlias(true);
? ? ?}
???? public void draw(canvas){
???????? 繪制圖像圖形;
?? ?????canvas.drawBitmap(bitmapTmp,0,0,paint);
????}
????public void surfaceCreated(SurfaceHolder holder){
?? ??????Canvas canvas=holder.lockCanvas();
?? ??????try{
??????????????synchronized(holder){
?????????????????draw(canvas);
??????????????}
????? ? ? }catch(Exception e){
? ??????????????e.printStackTrace();
????? ? ? }finally{
??????????????if(canvas!=null){
???????????????????? holder.unlockCanvasAndPost(canvas);
???????????????}
?? ? ????}
????}
???? .......................
}
?
25.檢測網絡是否連通
ConnectionDetector中的核心代碼:
private Context ?_context;
public boolean isConnectingToInternet(){
獲得連通性服務: ConnectivityManager ?connectivity=(ConnectivityManager)_context.getSystemService(Context.CONNECTIVITY_SERVICE); ???? if(connectivity!=null){
????????NetworkInfo[] info=connectivity.getAllNetworkInfo();
?? ?????if(info!=null)
???????????? for(int i=0;i<info.length;i++)
???????????? ?? ?if(info[i].getState()==NetworkInfo.State.CONNECTED){
???????????????????? return true;
?? ??????????????}
????}
????return false;
?}
?26.采集圖像數據
protected void onCreate(Bundle savedInstanceState){
設置橫屏: this.setRequestedOrientation(ActivitInfo.SCREEN_ORIENTATION_LANDSCAPE); 取消標題: this.requestWindowFeature(Window.FEATURE_NO_TITLE); 全屏: ? ?
? ??getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

????SurfaceView mySurfaceView=(SurfaceView)this.findViewById(R.id.surfaceView01);
????SurfaceHolder mySurfaceHolder=mySurfaceView.getHolder();
????mySurfaceHolder.addCallback(this);
????mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
protected void onPause(){
? ? super.onPause();
? ? isView=false;
? ? if(myCamera!=null){
停止預覽: myCamera.stopPreview(); 釋放照相機資源: ???? ??myCamera.release(); 釋放對象資源: ???????myCamera=null; } } public void initCamera() throws IOException{
? ? ?if(myCamera==null&&!isView){
??????????myCamera=Camera.open();
? ? ?}
? ? ?if(myCamera!=null&&!isView){
?????????try{
獲取照相機參數: Camera.Parameters ?myParameters=myCamera.getParameters(); 設置參數: ? ? myParameters.setPictureFormat(PixelFormat.JPEG); ????????????? ? myCamera.setParameters(myParameters);
開啟照相機預覽: myCamera.startPreview(); ????????????? ? isView=true;
???????? ?}catch(Exception e){
????????????? ? e.printStackTrace();
?????????}
? ? ?}
}
照相:
ShutterCallback myShutterCallback=new ShutterCallback(){
????public void onShutter(){}
}
PictureCallback myRawCallback=new PictureCallback(){
????public void onPictureTaken(byte[] data,Camera camera){}
} PictureCallback myjpegCallback=new PictureCallback(){ ???? public void onPictureTaken(byte[] data,Camera camera){
???????? bm=BitmapFactory.decodeByteArray(data,0,data.length);
?? ??????ImageView myImageView=(ImageView)findViewById(R.id.mySurfaceView);
?? ??????myImageView.setImageBitmap(bm);
?? ??????isView=false;
?? ??????myCamera.stopPreview();
?? ??????myCamera.release();
?? ??????myCamera=null;
? ? ?}
}
if(isView&&myCamera!=null){ 啟動照相: myCamera.takePicture(myShutterCallback,myRawCallback,myjpegCallback); }
保存圖像:
String path=Environment.getExternalStorageDirectory();
int c=0;
File fTest=new File(path+"/mc"+c+".jpeg");
while(fTest.exists()){
? ? c++;
? ? fTest=new File(path+"/mc"+c+".jpeg");
}
try{
? ? FileOutputStream fout=new FileOutputStream(fTest);
? ? BufferedOutputStream bos=new BufferedOutputStream();
? ? bm.compress(Bitmap.CompressFormat.JPEG,80,bos);
? ? bos.flush();
? ? bos.close();
? ?}catch(Exception e){
? ?異常處理;
}
?
27.錄制視頻
開始錄制:
? ? ? ?MediaRecorder ?recorder=new MediaRecorder();
? ? ? ?File outf=File.createTempFile("fileName"?,?".mp4"?,?Environment.getExternalStorageDirectory());
? ? ? ?recorder.setPreviewDisplay(mSurfaceHolder.getSurface());
? ? ? ?recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
? ? ? ?recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
? ? ? ?recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
? ? ? ?recorder.setVideoSize(640,480);
? ? ? ?recorder.setVideoFrameRate(20);
? ? ? ?recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
? ? ? ?recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
? ? ? ?recorder.setMaxDuration(10000);
? ? ? ?recorder.setOutputFile(outf.getAbsolutePath);
? ? ? ?recorder.prepare();
? ? ? ?recorder.start();
停止錄制:
??????recorder.stop();
???? ??recorder.release();
????? ?recorder=null;
?28.錄制音頻
????File myFile=File.createTempFile("myAudio",".amr",Environment.getExternalStorageDirectory());
????MediaRecorder myMediaRecorder=new MediaRecorder();
????myMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
????myMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
????myMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
????myMediaRecorder.setOutputFile(myFile.getAbsolutePath());
????myMediaRecorder.prepare();
????myMediaRecorder.start();
?
29.獲得手機中的圖片
? ? button.setOnClickListener(new OnClickListener(){
? ???????public void onClick(View v){
???????????? Intent intent=new Intent();
???????? ????intent.setType("image/*");
???????????? intent.setAction(Intent.ACTION_GET_CONTENT);
???????????? startActivityForResult(intent,1);
? ??? ? ?}
????});
????protected void onActivityResult(int requestCode,int resultCode,Intent data){
? ??????if(resultCode==RESULT_OK){
獲取選中圖片uri:
???????????? Uri uri=data.getData();
???????????? ContentResolver cr=this.getContentResolver();
???????????? try{
獲取圖片保存在Bitmap對象中:
???????????? ?? ?Bitmap bitmap=BitmapFactory.decodeStream(cr.openInputStream(uri));
???????????? ?? ?ImageView imageView=(ImageView)findViewById(R.id.imageview);
?????????????????imageView.setImageBitmap(bitmap);
???????????? }catch(Exception e){
???????????? ?? ?e.printStackTrace();
????????????}
? ? ?????}
? ? ?????super.onActivityResult(requestCode,resultCode,data);
????}
?
30.發送短信
? ? button.setOnClickListener(new View.OnClickListener(){
???????? public void onClick(View v){
???? ????????msg=et.getText().toString().trim();
???????? ??? Uri uri=Uri.parse("content://contacts/people");
???????? ??? Intent intent=new Intent(Intent.ACTION_PICK,uri);
?????????????startActivityForResult(intent,0);
????????}
????});
????public void onActivityResult(int requestCode,int resultCode,Intent intent){
? ?????switch(requestCode){
? ?????????case 0:
???????????????? Uri uri=intent.getData();
???????????????? if(uri!=null){
???????????????? ?? ?try{
???????????????????????? Cursor cursor=getContentResolver().query(ContactsContract.Contacts.CONTENET_URI,null,null,null,null);
????????????????????????while(cursor.moveToNext()){
?? ?????????????????????????String phoneName=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
獲取用戶的id,用來查找電話號碼:
????????? ? ? ? ? ? ? ? ? ? String contactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
????????? ? ?? ? ? ? ? ? ? ?String hasPhone=cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
????????????????????????????if(hasPhone.compareTo("1")==0){
???????????????????????????? ?? ? Cursor phones=getContentResolver().query(ContactsContract.CommonDatakinds.Phone.CONTENT_URI,null ,ContactsContract.CommonDatakinds.Phone.CONTACT_ID+"="+contactId,null,null); ???????????????????????????????? while(phones.moveToNext()){
???????????????????????????????? ?? ? String phoneNumber=phones.getString(phones.getColumnIndex(ContactsContract.CommonDatakinds.Phone.NUMBER));
????????????????????? ? ?? ? ? ? ? ? ?String phoneType=phones.getString(phones.getColumnIndex(ContactsContract.CommonDatakinds.Phone.TYPE));
???????????????????????????????? ?? ? if(phoneType.equals("2")){
???????????????????????????????????????????? SmsManager smsManager=SmsManager.getDefault();
???????????????????????????????????????????? PendingIntent pi=PendingIntent.getBroadcast(MainActivity.this,0,new Intent(),0);
???????????????????????????????????????????? smsManager.sendTextMessage(phoneName,null,msg,pi,null);
?? ??????????????????????????????? ??}
?????????????????????????????}
???????????????????????????? ?phones.close();
?????????????????????????}
????????????????????????}
?? ?????????????? ? ?}catch(Exception e){e.printStackTrace();}
???????????????????}
? ? ?????}
}
?
?

轉載于:https://www.cnblogs.com/evilKing/p/4418167.html

總結

以上是生活随笔為你收集整理的Android项目笔记整理(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲天堂8| 久久久久无码精品 | 国产成人综合在线视频 | 最近中文字幕在线视频 | 波多野结衣视频免费在线观看 | 岛国av在线 | 精品无码久久久久久国产 | 玖玖爱在线观看 | 伊人久久影院 | 亚洲偷怕| 色屁屁一区二区 | 综合网天天 | 色噜噜狠狠一区二区三区牛牛影视 | 伊人精品在线观看 | 亚洲男人天堂2020 | 手机在线一区二区 | 一级特黄a大片免费 | 狠狠躁日日躁夜夜躁 | 欧美动态色图 | 亚洲色图视频网站 | 国产主播av在线 | 亚洲国产丝袜 | 国产在线精品自拍 | 免费看欧美一级片 | 美女扒开大腿让男人桶 | 高清不卡一区二区三区 | 日韩人妻精品一区二区三区视频 | 亚洲男人av | 一区二区三区精品免费视频 | 不卡的免费av | 国产精品腿扒开做爽爽爽挤奶网站 | 色婷婷av一区二区三 | 毛片视频播放 | 色屁屁www | av在线不卡网站 | 欧美黄色一区二区三区 | 色婷婷av一区二区三区在线观看 | 床上激情网站 | 艳母在线视频 | 777精品伊人久久久久大香线蕉 | 久久精品视频播放 | 国产成人av免费 | 国产一区二区视频在线 | 肉丝美足丝袜一区二区三区四 | 丰满熟妇被猛烈进入高清片 | 超碰caoprom| 国产精品一区久久 | 97精品自拍| 免费在线黄色网 | 720url在线观看免费版 | 噜噜噜亚洲色成人网站 | 国产一在线观看 | 男女www视频 | 亚洲欧美日韩在线播放 | 都市激情 亚洲 | 亚洲精品视屏 | 欧美一区二区三区四区在线 | 国产又大又粗又爽的毛片 | 美女扒开尿口让男人捅爽 | 成年人免费在线观看视频网站 | 高潮一区二区 | 亚洲v欧美v| 亚洲午夜精品久久久 | 骚虎av在线 | 黄色1级大片 | 国产伦精品一区二区三区视频免费 | 91精品国产综合久久久久久久 | 无套内谢老熟女 | 日韩av视屏 | 中国极品少妇videossexhd 就要干就要操 | 欧美黑人性xxx | 亚洲欧美另类国产 | 日韩电影一二三区 | 亚洲天堂手机在线观看 | 国产一卡二卡三卡 | 春日野结衣av | 亚洲国产va| 老色批永久免费网站www | 99久久国| 九九久久久久 | 国产xxxx孕妇 | 人人干干 | 日韩av男人的天堂 | 日韩 欧美 国产 综合 | 亚洲涩情 | 精品伦理一区二区 | 成人黄色在线观看视频 | 97狠狠干| 99久久婷婷国产精品综合 | 7777奇米影视 | 国产精品麻豆入口 | 国模私拍xvideos私拍 | 成人黄色一区二区三区 | 另一种灿烂生活 | 国产成人精品av在线观 | 波多野结衣办公室33分钟 | 99er久久| 中文字幕影片免费在线观看 | 亚洲香蕉中文网 |