當前位置:首頁 » 安卓系統 » android相冊源碼

android相冊源碼

發布時間: 2022-08-06 02:28:04

『壹』 Cocos Creator怎麼使用安卓手機相冊中的圖片,最好有示例源碼

android 將drawable中的圖片保存到系統相冊中的原理比較簡單,獲取到的bitmap,然後通過的compress方法寫到一個fileoutputstream中. 再通知MediaScannerService有圖片文件加入就可以了.
保存圖片的核心代碼如下:
Bitmap bitmap= BitmapFactory.decodeResource(getResources(), R.drawable.icon);
MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, name, "");
或者
FileOutputStream fos = openFileOutput("image", Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
//發送系統通知消息
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
另一種方法是直接使用文件流讀寫:
InputStream is = mContext.getResources().openRawResource(PicID);
FileOutputStream fos = new FileOutputStream(LogoFilePath);
byte[] buffer = new byte[8192];
int count = 0;
while((count=is.read(buffer)) > 0)
{
fos.write(buffer, 0, count);
}
fos.close();
is.close();
這里要注意目錄許可權問題:在應用程序AndroidManifest.xml中的manifest節點中加入android:sharedUerId="android.uid.system"這個屬性。然後放在源碼環境中編譯,並通過adb install 的方式進行安裝。mk文件中的屬性改為LOCAL_CERTIFICATE :=platform。

『貳』 android圖庫源代碼解析,有沒有大神研究過系統自帶圖庫源代碼

什麼工具又是管理器的,看文件的名字唄,慢慢看吧

『叄』 android系統相冊源碼怎麼查看

把掃描內存卡的功能關掉,自帶的圖片瀏覽就看不到卡內的圖片了。然後就用下面的辦法了,建個文件夾,把重要的圖片放入其中,不想讓別人看的話,把文件夾隱藏了,或者用個加密軟體加密了。

『肆』 android 電子相冊 源碼

有安卓版嗎?我怎麼不知道?

『伍』 Android怎麼調用系統相冊將選中的圖片設置為布局的背景,有沒有案例或源碼

Android中調用系統相機來拍攝照片的代碼,如下:
1、首先設置Uri獲取判斷以及相機請求Code
public final int TYPE_TAKE_PHOTO = 1;//Uri獲取類型判斷

public final int CODE_TAKE_PHOTO = 1;//相機RequestCode
2、調起系統相機
Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = getMediaFileUri(TYPE_TAKE_PHOTO);
takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takeIntent, CODE_TAKE_PHOTO);
3、封裝獲取Uri代碼
public Uri getMediaFileUri(int type){
File mediaStorageDir = new File(Environment.(Environment.DIRECTORY_PICTURES), "相冊名字");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
//創建Media File
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == TYPE_TAKE_PHOTO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
} else {
return null;
}
return Uri.fromFile(mediaFile);
}
4、相機拍照完畢後獲取返回數據,並在頁面顯示照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
if (data != null) {
if (data.hasExtra("data")) {
Log.i("URI", "data is not null");
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);//imageView即為當前頁面需要展示照片的控制項,可替換
}
} else {
Log.i("URI", "Data is null");
Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath());
imageView.setImageBitmap(bitmap);//imageView即為當前頁面需要展示照片的控制項,可替換
}
}
break;
}
}
特殊:
一般情況,以上代碼在Android7.0以下,也就是api<24時,運行是沒有任何問題的。可是當targetSdkVersion變成24及其以上並且在android7.0(及以上版本)系統運行時,會拋出異常:FileUriExposedException。

『陸』 求:android 獲取系統相冊圖片並顯示在當前頁面的代碼

先初始化;

注意自定義 的

private final String IMAGE_TYPE = "image/*";private final int IMAGE_CODE = 0;


private void setImage() {
Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE);}
這里使用Intent獲得相冊圖片數據,並返回原來界面;

這里說明一下

startActivityForResult(getAlbum, IMAGE_CODE);

補充{

startActivityForResult與startActivity的不同之處在於:
1、startActivity( )
僅僅是跳轉到目標頁面,若是想跳回當前頁面,則必須再使用一次startActivity( )。
2、startActivityForResult( )
可以一次性完成這項任務,當程序執行到這段代碼的時候,假若從T1Activity跳轉到下一個Text2Activity,而當這個Text2Activity調用了finish()方法以後,程序會自動跳轉回T1Activity,並調用前一個T1Activity中的onActivityResult( )方法。

}

startActivityForResult(getAlbum, IMAGE_CODE);

這里採用startActivityForResult來做跳轉,此處的IMAGE_CODE實質是0為一個依據,可以寫其他的值,但一定要>=0

然後重寫onActivityResult用於接收剛剛得到的數據

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try {
Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm); } catch (IOException e) {
e.printStackTrace(); }
}

補充{
ContentProvider-----數據提供給第三方應用程序使用時使用
因為在Android系統裡面,資料庫是私有的。一般情況下外部應用程序是沒有許可權讀取其他應用程序的數據。如果你想公開你自己的數據,你有兩個選擇:你可以創建你自己的內容提供器(一個ContentProvider子類)或者你可以給已有的提供器添加數據-如果存在一個控制同樣類型數據的內容提供器且你擁有寫的許可權
}
這里是創建一個新的內容提供器,然後在Activity當中通過getContentResolver()可以得到當前應用的 ContentResolver實例

if (requestCode == IMAGE_CODE) {
resultCode為回傳的標記這句話是在確認是否回傳的是你所需要的;如果是就執行try;不然就執行catch (IOException e) {
e.printStackTrace();}先說這里當try語句中出現異常是時,會執行catch中的語句,IOException e也就是實例化Exception類型的對象。e是此對象引用名稱。然後e(引用)會自動調用Exception類中指定的方法,也就出現了e.printStackTrace() ;。printStackTrace()方法的意思是:在命令行列印異常信息在程序中出錯的位置及原因。
try {
Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm);接收數據處理數據並顯示照片。
然後進行測試。


另附源碼:
MainActivity:
package com.example.administrator.myapplication1;import android.graphics.BitmapFactory;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.io.IOException;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.app.Activity;import android.content.ContentResolver;import android.content.Intent;import android.graphics.Bitmap;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends AppCompatActivity { private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; private Button choose=null; private ImageView imgShow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init();} private void init() { choose=(Button) findViewById(R.id.button1); imgShow=(ImageView) findViewById(R.id.imgShow); choose.setOnClickListener(listener); } private OnClickListener listener=new OnClickListener(){ @Override public void onClick(View v) {
setImage(); }

}; private void setImage() {
Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE); } protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try {
Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm); } catch (IOException e) {
e.printStackTrace(); }
}
}
}


layout:activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="選擇照相" android:layout_marginRight="190dp" android:layout_marginTop="8dp" android:paddingBottom="2dp" android:background="#aabbcc" /> <ImageView android:id="@+id/imgShow" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="15dip" /></LinearLayout>

『柒』 怎樣查看 Android APP 源代碼

壓縮軟體打開apk文件,解壓出根目錄中的classes.dex文件

使用cmd ,dex2jar.bat classes.dex命令將classes.dex轉換為jar

再用jd-gui打開該jar就可以查看源碼了,如果apk安全性好的話,有些代碼是看不到的

『捌』 求android的圖片管理瀏覽功能的源碼,要系統自帶的那種,有相冊分類的,有的能給發一個嗎

快圖瀏覽 ,已發

『玖』 android camera源碼在哪個文件夾

android源碼主要位於兩個文件夾中。
src文件夾,存放java代碼。
res文件夾存放資源,如res->layout存放布局文件;res->drawable存放圖片文件等。

android代碼主要就存在於這兩個文件夾下

『拾』 怎麼修改Android源碼圖庫Gallery2的背景

Android4.0圖庫Gallery2代碼分析(一) 程序總體結構

Gallery2的用例圖分析:Gallery2主要功能是實現本地存儲器、MTP存儲器和網路存儲器中媒體(圖像和視頻)的瀏覽、顯示和更多操作(刪除、分享、選擇和縮放等)。下面用一張簡單的用例圖描述了Gallery2的功能和職責。

Gallery2中主要界面:AlbumSetPage.java(相冊縮略圖); AlbumPage.java(單個相冊照片縮略圖); PhotoPage.java(單張照片); ManageCachePage.java(緩存管理)SlideShowPage.java(單張滑屏界面); 這些界面類父類為ActivityState.java;這些界面的切換由StateManager.java負責。

界面類中一般都會制定一個數據源,Gallery2中主要的數據源有ComboSource.java(組合源); MtpSource.java(Mtp源); PicasaSource.java(Picasa源); LocalSource.java(本地源); ClusterSource.java(簇源); UriSource.java(URL源);FilterSource.java(過濾源)。數據源的共同基類為:MediaSource。數據源由DataManager.java負責管理。界面類就是從DataManager中取一個合適的數據源初始化自己。另外數據源是由MediaObject聚合而成,MediaObject也有多種形態。

界面和數據源需要一個橋梁,界面才能方便的渲染數據源,橋梁就是數據適配器。例如:AlbumSetPage(界面縮略圖界面)---- AlbumSetDataAdapter(適配器)---- ComboSource(組合數據源)。AlbumPage ----AlbumDataAdapter;PhotoPage ----PhotoDataAdapter;SlideshowPage ----SlideshowDataAdapter

數據渲染的最小單元為MediaOject,它包括豐富的衍生類。

界面交互方面就是觸摸屏操作和菜單操作。如何支持滑鼠呢,如果系統支持滑鼠,它就自然支持。如何支持遙控器呢?見後續文章。

後續文章大致目錄

圖庫Gallery3D(Gallery2)分析(二) 程序資源管理和傳遞

圖庫Gallery3D(Gallery2)分析(三) 狀態管理和窗口切換

圖庫Gallery3D(Gallery2)分析(四) 消息處理(點擊和手勢)

圖庫Gallery3D(Gallery2)分析(五) 各種數據源和數據源的管理

圖庫Gallery3D(Gallery2)分析(六) 可渲染數據元及其多樣性

圖庫Gallery3D(Gallery2)分析(七) 遙控器控制的實現

圖庫Gallery3D(Gallery2)分析(八) 和數據掃描線程的數據交互

圖庫Gallery3D(Gallery2)分析(九) 幾點可優化的地方

熱點內容
php日記本 發布:2024-05-02 17:28:22 瀏覽:850
msc拒絕訪問 發布:2024-05-02 17:19:09 瀏覽:122
php函數漏洞 發布:2024-05-02 17:15:26 瀏覽:963
linux訪問localhost 發布:2024-05-02 17:04:11 瀏覽:880
劍三自動任務腳本 發布:2024-05-02 16:59:42 瀏覽:526
哪裡有java視頻教程 發布:2024-05-02 16:59:31 瀏覽:346
零食盒子密碼多少 發布:2024-05-02 16:52:24 瀏覽:354
win10怎麼訪問區域網 發布:2024-05-02 16:51:37 瀏覽:471
功能點估演算法是 發布:2024-05-02 16:24:38 瀏覽:166
b站非法訪問 發布:2024-05-02 16:09:59 瀏覽:456