Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android-Frame布局,UI布局切換,錄音,照相機,影音播放器,音頻播放器

Android-Frame布局,UI布局切換,錄音,照相機,影音播放器,音頻播放器

編輯:關於Android編程

<FrameLayout anroid:layout_weight=”1”>

         <ImageView android:scaleType=”fitCenter”/>

       

//沒有標題欄

requestWindowFeature(Window.FEATURE_NO_TITLE);

 

//全屏顯示(隱藏掉狀態欄)

//在setContentView之前調用getWindow().addFlages(WindowManager.LayoutParams.FLAG_FULLSCREEN);

       

Androied-編程UI/布局切換

LinearLayout linearLayout = new LinearLayout(this);

layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT){

         textView = new TextView(this);

         textView.setText(R.string.hello);

         textView.setId(34);

         LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(

                   ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);

         linearLayout.addView(textView, textParams);

         setContentView(linearLayout,layoutParams);

}

 

Android-多媒體(錄音)

<uses-permission android:name=”android.permission.RECORD_AUDIO”/>

 

MediaRecorder recorder = new MediaRecorder();

//從麥克風采集聲音

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

//內容輸出格式

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音頻編碼方式

recorder.setOutputFile(“/mnt/sdcard/itcast.amr”);

recorder.prepare();//預期准備

recorder.start();//開始刻錄

recorder.stop();停止刻錄

recorder.reset();//重設

recorder.release();//刻錄完成一定要釋放資源。

 

Android-多媒體(音頻播放器)

MediaPlayer mediaPlayer = new MediaPlayer();

mediaPlayer.setDataSource(“/mnt/sdcard/god.mp3”);

mediaPlayer.prepare();

mediaPlayer.start();//開始或恢復播放

mediaPlayer.pause();//暫停播放

mediaPlayer.stop();//停止播放

mediaPlayer.release();//釋放資源

//播放出錯事件

mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener(){

         public Boolean onError(MediaPlayer player,int arg1,int arg2){

                   mediaPlayer.release();

                   return false;

}

});

 

多媒體(影音播放器)

在main.xml布局文件添加視頻畫面繪制的SurfaceView控件

<SurfaceView…>

surfaceView.getHolder().setFixedSize(176.144);//設置分辨率

//下面設置Surface不維護自己的緩沖區,而是等待屏幕的渲染引擎內容推送到用戶面前

SurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

 

//當有新的Activity打開,SurfaceView會被銷毀。當新的Activity關閉後,當前Activity回到前台,SurfaceView會在onResume()之後被重新創建。因此通過回調完成。

svVedio.getHolder().addCallback(new CallbackImpl())

 

MediaPlayer mediaPlayer = new MediaPlayer();

mediaPlayer.reset();//重置為初始狀態

mediaPlayer.setDisplay(surfaceView.getHolder());

mediaPlayer.setDataSource(“/mnt/sdcard/oppo.mp4”);

mediaPlayer.prepare|start();|pause|stop|release();

 

注:影音播放放在模擬器2.2上有問題,需要移植到2.0平台下。

 

Android—多媒體(照相機)

surfaceView.getHolder().setFixedSize(176, 144);//設置分辨率

surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

surfaceView.getHolder().addCallback();//回調

WindowManager wm = getSystemService(Context.WINDOW_SERVICE);//窗口管理器

Display display = wm.getDefaultDisplay();//

Camera camera = Camera.open();//打開照相機

Camera.Parameters parameters = camera.getParameters();

parameters.setPreviewSize(display.getWidth(),display.getHeight());//大小

parameters.setPreviewFrameRate(3);//每秒3幀

parameters.setPictureFormat(PixelFormat.JPEG);//設置照片的輸出格式

parameters.set("jpeg-quality", 85);//照片質量

parameters.setPictureSize(display.getWidth(),display.getHeight());

camera.setParameters(parameters);

 

照片需要在surfaceView.holder回調中完成相機設置並開始預覽,因為需要等holder就緒後才可用,道理同播放器相同。

不能再takePicture之後調用startPreview,因為是異步處理。需要在picCall回調中開始預覽。

 

照相機

//通過SurfaceView顯示取景畫面

camera.setPrevieDisplay(surfaceView.getHolder)

camera.startPrevice();//開始預覽

camera.autoFocus(null);//自動對焦

camera.takePicture(null,null,null,jpegCallback);//拍照片

camera.stopPrevice();//停止預覽

camera.release();//釋放攝像頭。

 

onKeyDown:

public Boolean onKeyDown(int keyCode,keyEvent event){

         if(camera != null && event.getRepeatCount()==0){

                   case KeyEvent.KEYCODE_SEARCH:

}

PictureCallback:

Bitmap bmp = BitmapFactory.decodeByteArray(data,0,data.length);

File jpg = new File(Environment.getExternalStorageDirectory(),”1.jpg”);

FileOutputStream fos = new FileOutputStream(jpg);

Bmp.compress(Bitmap.CompressFormat.JPEG,100,fos);

fos.close();

camera.startPreview();

}

 

使用意圖模擬拍照

若沒有攝像頭硬件,可使用系統內置的provider實現攝像頭功能(該功能2.2的模擬器不支持)

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

//指定輸出文件

//outputFileUri指定照片存放的地址,若有的話存放全尺寸大照片,否則返回位圖。

//在onActivityResult方法中接收

Intent.putExtra(mediaStore.EXTRA_OUTPUT,outputFileUri);

startActivityForResult(intent,0);

 

BitmapFactory.Options options = new BitmapFactory.Options();

Options.inSampleSize = 1;

Bitmap bitmap = BitmapFactory.decodeFile(_path,options);

_image.setImageBitmap(bitmap);

 

<!—需要使用如下權限--->www.2cto.com

<uses-permission android:name=”android.permission.CAMERA”/>

<uses-feature android:name=”android.hardware.camera”/>

<uses-feature android:name=”android.hardware.camera.autofocus”/>


作者:toto1297488504
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved