Android 选择图片,加载图片,显示图片 综合案例
2016-06-22 23:22
701 查看
涉及到的知识点:
1 sdcard读写权限
一 :SdCard 读写权限,见我的博客
/article/11900566.html
二: 布局文件:
三:代码:
四:效果图
![](http://img.blog.csdn.net/20160622231548703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160622231912036?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160622231948382?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160622232007397?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160622232038241?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1 sdcard读写权限
2 弹出选择图片资源对话框
3 保存图片
4 遍历目录,保存图片路径
5 加载图片资源
6 显示图片
一 :SdCard 读写权限,见我的博客/article/11900566.html
二: 布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.getimagepath.MainActivity" android:orientation="vertical" tools:ignore="MergeRootFrame" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="selecImage" android:text="选择文件" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> </LinearLayout>
三:代码:
package com.example.getimagepath; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.content.ContentResolver; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import android.os.Build; public class MainActivity extends ActionBarActivity { public String imageDir = "/sdcard/ht/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 显示目录下所有的图片路径 TextView text = (TextView) findViewById(R.id.textView1); text.setText(""); String[] files = getDirFiles(imageDir); for(int i=0;i<files.length;i++){ text.append(files[i] +"\r\n"); } // 加载 并显示图片 if(files.length != 0) { ImageView image = (ImageView) findViewById(R.id.imageView1); Bitmap bm = BitmapFactory.decodeFile(files[0]); image.setImageBitmap(bm); } } // 点击加载按钮弹出选择图片 public void selecImage(View v){ Intent intent = new Intent(); intent.setType("image/*"); 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(); ContentResolver cr = this.getContentResolver(); try { Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri)); //将选择的图片,显示在主界面的imageview上 ImageView image = (ImageView) findViewById(R.id.imageView1); image.setImageBitmap(bitmap); // 保存选择的图片文件 到指定目录 SaveImage(bitmap,imageDir + "win_back.png"); } catch (FileNotFoundException e) { Log.e("Exception", e.getMessage(),e); } } super.onActivityResult(requestCode, resultCode, data); } // 保存图像文件 public void SaveImage(Bitmap bitmap,String filePath){ File file = new File(filePath); FileOutputStream fos; try { fos = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, fos); fos.close(); }catch(Exception e){ e.printStackTrace(); } Intent intent = new Intent(); intent.setAction(Intent.ACTION_MEDIA_MOUNTED); intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory())); sendBroadcast(intent); } // 遍历目录,返回目录所有文件路径 public String[] getDirFiles(String dir) { File[] currentFiles; File root = new File(dir); currentFiles = root.listFiles(); String[] files = new String[currentFiles.length] ; for(int i=0;i<currentFiles.length;i++){ String filePath = imageDir + currentFiles[i].getName(); files[i] = filePath; } return files; } public void show(String msg) { try { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } catch (Exception e) { } } }
四:效果图
相关文章推荐
- Android系统透明栏(Translucent Bars)使用SystemBarTint的实现攻略
- android常见异常总结
- android开发脚本之过滤特定包名的log
- Android Development Notes-4(BroadcastReceiver, Manifests)
- Android init.rc文件浅析
- Android自定义组件之简单组合
- RecyclerView中itemDecoration
- Android中的内存储、外存储概念
- (OK)(OK) Fedora23-NS3-Android-x86-MANETs-Testing
- android的TelephoneManager
- android MotionEvent中getX()和getRawX()的区别
- Android获取服务端数据解析保护
- Android 2D翻转
- Android中的ViewRootImpl类源码解析
- Android SdCard写入权限
- Android初级教程理论知识(第九章多媒体编程)
- Android初级教程理论知识(第九章多媒体编程)
- Android FragmentStatePagerAdapter的写法
- Android PDF截取封面:PDF缩略图预览效果
- Android控件(1)--ActionBarDrawerToggle、DrawerLayout、ActionBar 使用说明