android图片_加载大图片
来源:互联网 发布:时时彩返奖统计软件 编辑:程序博客网 时间:2024/04/28 22:41
一、项目目录结构
二、activity_main.xml界面
三、activity_main.xml代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.zgs.loadBigImage.MainActivity" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="click" android:text="加载" /> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>四、MainActivity.java代码
package com.zgs.loadBigImage;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapFactory.Options;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.WindowManager;import android.widget.ImageView;public class MainActivity extends Activity {private ImageView iv;private int screenWidth;private int screenHeight;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//[1]找到iv用于显示加载图片 iv = (ImageView) findViewById(R.id.iv);//[2]获取手机的分辨率,获取windowmanager实例WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);//谷歌过时方法screenWidth = wm.getDefaultDisplay().getWidth();screenHeight = wm.getDefaultDisplay().getHeight();//谷歌新方法// Point size=new Point();// wm.getDefaultDisplay().getSize(size);// screenWidth = size.x;// screenHeight = size.y;System.out.println("手机的宽和高:"+screenWidth+"---"+screenHeight);}//点击按钮 加载dog.jpg 这张图片public void click(View v) {//[2]把dog.jpg 转换成bitmap //创建bitmap工厂的配置参数 BitmapFactory.Options options = new Options();//返回一个null 没有bitmap 不去真正解析位图 但是能返回图片的一些信息(宽和高)options.inJustDecodeBounds = true;String pathNameString = Environment.getExternalStorageDirectory().getAbsolutePath();System.out.println(pathNameString);BitmapFactory.decodeFile("/storage/sdcard/dog.jpg",options);//[3]获取图片的宽和高 int imgWidth = options.outWidth;int imgHeight = options.outHeight;System.out.println("图片的宽:"+imgWidth+"-----"+imgHeight);//[4]计算缩放比 int scale = 1; //我们定义的缩放比 int scalex = imgWidth/screenWidth;int scaley = imgHeight /screenHeight;if (scalex >=scaley&&scalex > scale) {scale = scalex;}if (scaley > scalex && scaley>scale) {scale = scaley;}System.out.println("缩放比为:"+scale);//[5]按照缩放比显示图片 options.inSampleSize = scale;//[6]开始真正的解析位图 options.inJustDecodeBounds = false;Bitmap bitmap = BitmapFactory.decodeFile("/storage/sdcard/dog.jpg",options);//[7]把bitmap显示到控件上iv.setImageBitmap(bitmap);}}五、AndroidManifest.xml代码
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zgs.loadBigImage" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="22" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>注意一定要在配置清单中加上面代码中的这两句话:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
0 0
- android图片_加载大图片
- 多媒体_加载大图片,压缩图片
- Android缩放图片加载大图片
- Android 加载大图片
- android 加载大图片
- android加载大图片
- Android-加载大图片
- android加载大图片
- android 加载大图片
- android加载大图片
- Android 加载大图片
- Android 加载大图片
- Android有效加载图片 之 有效加载大图片
- Android低端设备加载大图片、优化设备加载图片
- Android中加载大图片OOM(图片缩放)
- android缩放大图片加载
- Android 高效加载大图片
- Android 高效加载大图片
- Html第一天
- 教你认清MVC,MVP和MVVM
- mybatis缓存详解
- Redux初体验
- php 获取当前时间
- android图片_加载大图片
- [BZOJ3230]相似子串(后缀数组+二分+st表)
- java http post json
- Leetcode 113, Path Sum II
- 用c++获取音频文件的信息 达到异步播放的效果(2)
- Idea spring 自定义spring.handlers spring.schemas maven不识别问题
- DRuler 拍照测距原理
- 表示数字 (字符串替换C++)
- 如何设计MVP中的Presentation层