導航:首頁 > 源碼編譯 > android3d相冊源碼

android3d相冊源碼

發布時間:2023-02-02 13:32:14

android gallery3D 問題

其實跟電腦上的cache特性一樣,如果圖片不多的話,第一次讀取cache失效就將圖片放到cache上,如果命中的話,。。。都命中了,沒事了。

如果圖片很多,量很大的話,如果你讀取第100張圖片,不管是否命中cache,系統自動的將第100張圖片的前面和後面的幾張都存入cache,方便下一次可能會用到。因為人們習慣看某張圖片後,會接著看上一張或下一張,這就是局部性原理。

當然了,我說的這是一邊讀取一邊使用的情況。cache嘛,任何地方都有這個類似的性質:少則直接撞進來,多則利用局部性原理。

㈡ 怎樣更換android3D原生相冊更換相冊封面

android3D的原廠自帶相冊 ,太慢了 ,換 快圖 這個軟體 蠻好用的

㈢ G11如何弄漂亮的相冊 看到別人的手機 瀏覽自己的相片 時 感覺是3D效果的

那個是3D相冊,所有android手機通用

㈣ 求: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>

㈤ unity3D 中獲取android相冊中的照片(大小2.5M)存在嚴重耗時問題(具體見下面的描述)

crop一下,指定一下系統輸出的圖片bitmap是切剪過的,而且你傳過去是可以指定輸出圖寬高的

㈥ 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 圖庫源碼在哪個文件夾

android/apps/package/Gallery3D/

㈧ 3d旋轉相冊代碼源碼背景為什麼會重復

原因還是在於職責的分配與分離做得不夠好。職責的分配不準確,就可能導致代碼結構不清晰,而職責的分離做得不好,就可能導致代碼的重復。

㈨ 誰說android不夠炫 絕美的圖片瀏覽軟體--超越iphone效果Gallery 3D!!敬獻各

搜索一下這個
3D相冊(Gallery 3D + 倒影效果) GalleryFlow
第一個就是了

閱讀全文

與android3d相冊源碼相關的資料

熱點內容
如何修改ie代理伺服器 瀏覽:417
折紙手工解壓玩具不用a4紙 瀏覽:485
怎麼雙向傳輸伺服器 瀏覽:286
電腦如何實現跨網段訪問伺服器 瀏覽:549
模塊化網頁源碼位元組跳動 瀏覽:485
梯度下降演算法中遇到的問題 瀏覽:605
伺服器連接電視怎麼接 瀏覽:323
phploop語句 瀏覽:501
交叉編譯工具鏈里的庫在哪 瀏覽:781
安卓手q換號怎麼改綁 瀏覽:399
nba球星加密貨幣 瀏覽:789
命令看網速 瀏覽:124
java堆分配 瀏覽:161
linuxbuiltin 瀏覽:560
cstpdf 瀏覽:941
texstudio編譯在哪 瀏覽:352
國家反詐中心app注冊登記表怎麼注冊 瀏覽:972
加密機默認埠 瀏覽:101
有哪個網站有免費的python源代碼 瀏覽:305
蘋果手機如何導入安卓電話 瀏覽:915