android圖片文件選擇文件
⑴ android自定義控制項之文件選擇
不多說,先上圖:
列舉當前目錄下的所有文件,如果是選擇目錄,則不顯示文件,如果是選擇文件,則需要顯示文件。
新建目錄,就是在當前路徑下新建目錄,同時新建後的目錄要能夠及時顯示在文件列表中。
需要讀寫許可權,添加第三方許可權請求庫:
使用:
DialogFragment與Dialog有一些不同的地方,其中show方法需要傳入FragmentManager
另外需在onCreateVie方法初始化布局,以及獲取到控制項
另外就是RecycleView,之所以採用RecycleView,是因為發現如果用ListView,內存會不斷增加,很難降下來。
其中CommonAdapter繼承自BaseAdapter,是通用的Adapter,兼容ListView:
這一部分邏輯有FileProvider類完成; 這里需要注意的是,有些手機不支持讀取根目錄,所以改為讀取"/mnt/"作為根目錄就行讀取。
另外跳轉目錄都是改變當前路徑,然後再刷新數據。
同時在其內部定義了FileData類:
文件選擇,可以通過當前路徑路徑以及列表索引來唯一確定路徑;都是,當跳轉目錄後,索引應該重置。
這里採用WeakReference記錄選擇的控制項,但選擇其他目錄或者文件時,之前的控制項需要重置一下狀態。
https://github.com/xiaoyifan6/videocreator
該源碼主要用於圖片合成gif或者視頻,其中文件選擇彈窗是自己寫的。感覺這個彈出應該有許多地方可以用到,所以寫下這篇文章,方便以後參考查看。
以華為榮耀20手機為例,手機拍攝完成的相片被保存在圖庫里。
具體查找打開步驟如下:
1、打開手機電源,進入手機主頁面,如下圖所示;
⑶ android選擇本地文件的問題
網路錯誤,你肯定選擇成網路圖片,不然為什麼與網路相關呢?
抓一下log看一下運行流程,也可能調用了其他不相關的內容了。
到sd卡內目測一下那兩張圖片,將其移動到可以正常顯示的圖片目錄下進一步測試。
⑷ 安卓手機能不能跟電腦一樣,任意截圖,每次截圖選擇圖片存放文件夾
可以的。
1、首先你得按住手機中間的home健,然後再按住你手機的電源鍵。
2、然後值得注意的是,這兩個鍵必須是同時按下,否則是截不了圖的。等到手機咔嚓一聲,整個屏幕就會被截取下來了。
3、最後會彈出截取的圖片保存的路徑,你也可以在相冊中叫「screenshots」的相冊中找到你剛剛的截圖。
⑸ Android編程 打開本地文件 文件選擇器
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/b01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/iv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
代碼
java">import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Lesson_01_Pic extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.b01);
button.setText("選擇圖片");
button.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
/* 開啟Pictures畫面Type設定為image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT這個Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片後返回本畫面 */
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
Log.e("uri", uri.toString());
ContentResolver cr = this.getContentResolver();
try {
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
ImageView imageView = (ImageView) findViewById(R.id.iv01);
/* 將Bitmap設定到ImageView */
imageView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
Log.e("Exception", e.getMessage(),e);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
⑹ Android 圖片選擇(ImageSelector) (拍照,裁剪,壓縮,查看)
1.遍歷sdcard文件夾(指定層次深度 searchDeep ),如果文件夾發現圖片 , 添加到已搜索到圖片的文件列表中,並跳入下一個文件夾搜索
2.使用 ContentResolver 搜索 添加搜索標簽(png,jpg,jpeg,gif 等) 優點:更快速
壓縮調用
第一步-->
采樣率壓縮:設置 BitmapFactory.Options.inSampleSize 大小
第二步-->
PNG:尺寸壓縮( Config:ARGB_4444 ,工具: Canvas );
JPG:尺寸壓縮( Config:ARGB_565 ,工具: Canvas )+壓縮質量( bitmap.compress() )
注 :
1.GIF不做壓縮處理
2.尺寸壓縮:改變寬高(png,jpg)
3.壓縮質量:改變文件大小(適用jpg,png無效)
⑺ android是根據什麼去選擇三種drawable文件夾下的圖片
是根據drawable文件夾的修飾符進行選擇的。
比如drawable、drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawalbe-xxhdpi、drawable-xxxhdpi
根據修飾符進行優先匹配。
不同的dpi修飾符對應的dpi如下
drawable-ldpi 120DPI
drawable-mdpi 160DPI
drawable-hdpi 240DPI
drawable-xhdpi 320DPI
drawalbe-xxhdpi 480DPI
drawable-xxxhdpi 640DPI
dpi是根據手機的當前解析度ppi歸一化得到的。
那麼PPI如何得來的?
如果手機的寬為X,高為Y,屏幕大小為Z英寸,那麼
公式中的X2其實是X的平方,即X*X。
比如三星手機I9260解析度是1280*720,屏幕大小是4.65英寸,那麼計算得到的PPI就是315.8PPI
找一個最近的DPI值應該是320DPI,也就是這個設備被歸一化後就是320DPI。屬於xhdpi。
系統取圖片時會優先選擇drawable-xhdpi裡面的圖片,如果drawable-xhdpi不存在或者沒有這張圖,就會就近從其它解析度和默認的無後綴drawable文件夾下取。
比如工程只有在draw-xxhdpi文件下有img圖片,而你的設置是xhdpi,就會從xxhdpi取完圖片再壓縮到對應大小返回給使用者。
⑻ android是根據什麼去選擇三種drawable文件夾下的圖片
是根據你的屏幕密度來確定的,關於屏幕密度你可以網上查一下,這三個文件夾對應三種不同的屏幕密度;
同一張圖片在不同的文件夾下表現是不一樣的,會自動縮放,,你有興趣可以試試,,另外兩個文件夾不放同一圖片,,實際取圖的寬高,,會發現會自動變化。。
⑼ 安卓系統所有照片存在哪個文件夾
點擊【文件管理】中的【內部存儲】,進去內部存儲界面之後,點擊tencent,點擊MicroMsg。點擊進去Download文件夾,就看到手機微信接收的文件。具體介紹如下:
1、一般都是在騰訊文件夾中找到微信的下載文件夾即可,首先打開手機的文件管理器,點擊【內部存儲】;
2、打開內部存儲界面之後,點擊【tencent】,然後選擇【MicroMsg】
3、進入文件夾之後再選擇【Download】文件夾;進去Download文件夾之後,可以看到手機微信接收的文件。
打開手機的相機,一般在右上角會有【設置】的圖標,點擊進入相機的設置菜單;看到路徑之後,使用手機的文件管理器復制路徑進入該目錄,就可以看到視頻文件。以下是詳細介紹:
1、打開手機的相機,一般在右上角會有【設置】的圖標,點擊進入相機的設置菜單;
2、切換到視頻拍攝選項中就可以看到視頻的保存路線,您可以將其復制;
3、打開文件管理器,點擊手機,按照路徑進入DICM目錄,進入到相機目錄,那麼就可以看到視頻文件;存儲在手機內置存儲空間中的默認查看路徑是:【我的文件】-【sdcard0/設備存儲】-【DCIM】-【Camera】;存儲在存儲卡中的默認查看路徑是:【我的文件】-【extSdcard/SD card】-【DCIM】-【Camera】;