android照相機源碼
1. android如何獲取相機解析度
安卓系統在獲取相機解析度時,可以參考SDK中的API,獲取相機的參數:
Camera.Parameters parameters = camera.getParameters();
獲取預覽的各種解析度:
List<Size> supportedPreviewSizes = parameters.getSupportedPreviewSizes();
獲取攝像頭支持的各種解析度:
List<Size> supportedPictureSizes = parameters.getSupportedPictureSizes();
例如:獲取照相機顫彎參數,設置需要的參數,其餘預設
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
設置照片格式:
parameters.setPictureFormat(PixelFormat.JPEG);
設置預瀏尺嫌洞含寸,注意要在攝像頭芹笑支持的范圍內選擇:
parameters.setPreviewSize(WIDTH, HEIGHT);
設置照片解析度,注意要在攝像頭支持的范圍內選擇
parameters.setPictureSize(WIDTH, HEIGHT);
設置照相機參數:
camera.setParameters(parameters);
開始拍照:
camera.startPreview();
以上就是獲取相機解析度的步驟。
2. android 調用系統照相機,保存後回到前一個activity
修改相機源碼編譯,因為相機返回功能是點2次,保存並沒有退出動作,這個不改源碼或者在相機源碼裡面加Intent 是做不到這種效果的 。 我剛想了下,在廣播或者Service裡面加 OnKeyDown 方法 ,但是廣播和service沒有這方法,所以不能夠靠監聽到 返回鍵的鍵值 4 ,從而直接 Intent到 A activity的功能就無法實現 ,所以建議修改相機源碼,即可實現 。 如果是純應用, 抱歉,能想的都想了,實現不了。
3. 怎樣查看 Android APP源代碼
將apk文件拷貝至sdcard上。
命令順序如下:
進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,
其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:
在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!
4. 怎麼在windows下查看android源碼
先下載源碼,最新為2.2
2.找SDK目錄
安裝的SDK到我的目錄E:\
E:\android-sdk-windows\
找到目錄 結構如下:
E:\android-sdk-windows\
-platforms
+android-3(android-1.5)
+android-4(android-1.6)
………..
+android-6(android-2.0)
+android-7(android-2.1)
+android-8(android-2.2)
最高的android-8對應的是SDK2.2。
在android-8文件中新建sources然後把下載好的源碼(android-2.2-froyo-src.zip)解壓到這個文件下。
3.改配置文件(修改紅色部分)
找到android-8目錄下的文件source.properties並將其修改如下:
### Android Tool: Source of this archive.
#Wed Oct 13 14:00:16 CST 2010
Pkg.Desc=Android SDK Platform. 2.2_r1
Pkg.UserSrc=true
Archive.Arch=ANY
Platform.Version=2.2
Pkg.DescUrl=sources
Archive.Os=WINDOWS
Pkg.SourceUrl=sources
Pkg.Revision=2
AndroidVersion.ApiLevel=8
大公告成,重啟Eclipse,按ctril+關鍵字、類名 或者按F3就可以點進去了,可以看到源碼了吧!
PS:已經下載好的源碼,可以把core目錄放入到sources中即可。。。
5. android 4.2的版本 照相機界面切換至前攝像頭,按返回後再進照相在後攝像頭,進去應還在前攝像頭
文件,android / platform/packages/apps/Camera / android-4.2.2_r1.2 / . / src / com / android / camera / PhotoMole.java:
private int getPreferredCameraId(ComboPreferences preferences) {
int intentCameraId = Util.getCameraFacingIntentExtras(mActivity);
if (intentCameraId != -1) {
// Testing purpose. Launch a specific camera through the intent
// extras.注意這個注釋,
return intentCameraId;
} else {
return CameraSettings.readPreferredCameraId(preferences);
}
}
這個方法返回的CaremaId就是要Launch 的Camera
android / platform/packages/apps/Camera / android-4.2.2_r1.2 / . / src / com / android / camera / CameraSettings.java文件中靜態方法:
public static int readPreferredCameraId(SharedPreferences pref) {
return Integer.parseInt(pref.getString(KEY_CAMERA_ID, "0"));//我猜可能沒設置,總返回0
}
讀取保存在xml文件中的ID,搜索KEY_CAMERA_ID,看有沒有在某個地方設置ID值。
發現:
public static void writePreferredCameraId(SharedPreferences pref,
int cameraId) {
Editor editor = pref.edit();
editor.putString(KEY_CAMERA_ID, Integer.toString(cameraId));
editor.apply();
}
寫入ID值,再找這個方法看看哪裡調用了。
我沒有下載4.2源碼,上面源代碼是從googlesrouce上網頁上查到的,提供個思路給你希望對你有幫助。