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】;