android从手机内存获得图片并全屏显示

原创 2015年10月28日 18:01:36

java部分代码:

<span style="font-size:18px;">package com.xpc.imageviewdemo;

import java.io.File;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.os.Environment;
import android.util.DisplayMetrics;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;

public class MainActivity extends Activity {
	ImageView img;
	String path;
	String filepath;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);//不显示标题栏
		setContentView(R.layout.activity_main);
		img = (ImageView) findViewById(R.id.imageView1);
		File sd = Environment.getExternalStorageDirectory();
		path = sd.getPath();//获得手机内存storage的位置
		filepath = path + "/picturereceive/beautiful2.jpg";//storage下需要全屏显示的图片路径(要根据自己手机中需要显示图片路径位置进行修改)
		File file = new File(filepath);
		System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<"+filepath);
		if (file.exists()) {
			System.out.println("<<<<<<<<<<<<<<<<<<<<<<<4");
			Bitmap bm = BitmapFactory.decodeFile(filepath);//获得设置路径下图片并编码为Bitmap格式
			bm = big(bm);//放大图片至全屏
			System.out.println("<<<<<<<<<<<<<<<<<5");
			img.setImageBitmap(bm);//设置图片为背景图
		}
		else {
			System.err.println("<<<<<<<<<<<<<404 Not Find");//控制台输出没找到图片
		}
	}

	public Bitmap big(Bitmap bitmap) {  				//修改bitmap大小
		DisplayMetrics dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);  
		int screenWidth = dm.widthPixels;				//获取当前屏幕宽度  
		int screenHeight = dm.heightPixels;				//获取当前屏幕高度
		float w = (float) screenWidth / bitmap.getWidth();	//计算当前图片要全屏幕,宽度需要放大尺寸
		float h = (float) screenHeight / bitmap.getHeight();//计算当前图片要全屏,高度需要放大尺寸
		if (w >= h)//选取较小尺寸进行放大
			w = h;
		Matrix matrix = new Matrix();
		matrix.postScale(w, w);//设置宽高放大比例(这里为等比例放大)
		Bitmap resizeBmp = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
				bitmap.getHeight(), matrix, true);//对现有bitmap进行放大
		return resizeBmp;
	}
}</span>


xml布局文件代码:

<RelativeLayout 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:background="#000000"//设置背景为黑色
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

注意一定要加上手机读内存权限

在manifest文件中写入  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


该项目源代码位置  该项目demo

往手机SD卡、内部存储中读写文本、图片

  • 2016年08月15日 22:09
  • 34.14MB
  • 下载

加载手机存储卡中的图片BitmapFactory.decodeFile()

Android API中提供了Bitmap(Android.graphics.Bitmap)与BitmapFactory(Android.graphics.bi)
  • dsc114
  • dsc114
  • 2014年07月21日 23:33
  • 2554

Bitmap类getPixels()详解

getPixels()void getPixels (int[] pixels, int offset, int stride, ...
  • xx326664162
  • xx326664162
  • 2016年08月18日 19:02
  • 4911

Bitmap通过getWidth和getHeight获取尺寸不符

在使用BitmapFactory加载图片时,常会出现这种情况,返回的图片尺寸与实际尺寸不符。这是由于我们把图片资源放到res/drawable文件路径下时,选择的文件不同所致,不同的文件夹会有不同的缩...
  • renwudao24
  • renwudao24
  • 2015年08月15日 12:29
  • 5023

Android手机开发:ImageView使用和从内存读取图片显示

import java.io.File; import android.app.Activity; import android.graphics.Bitmap; import android.gr...
  • hustspy1990
  • hustspy1990
  • 2011年08月10日 16:39
  • 11721

android开发获取手机内存使用情况

public Object getPenter() { String dir = "/proc/meminfo"; try { FileReader fr = new ...
  • yangguangde22
  • yangguangde22
  • 2018年01月25日 17:10
  • 65

getBitmap.getWidth获取图片不是实际图片大小

getBitmap.getWidth获取图片不是实际图片大小,根据不同的目录而定
  • yekkow
  • yekkow
  • 2015年12月24日 17:11
  • 386

Android: bitmap.getWidth的问题

显示图片的一部分的时候,发现总是不能正常显示。 例如,一个图片宽100,高100,我们想显示它的左上1/4,很显然会这样写: canvas.drawBitmap( bmp, rect(0,0,50...
  • flyinwuhan
  • flyinwuhan
  • 2013年07月24日 15:23
  • 2251

最完整的获取android手机图片并显示到控件的解决方案

手机上的本地图片资源分为两种,一种是从本地相册获取,一种是从本地相机拍照获取。 1、获取图片很简单,调用系统提供的Intent对象,启动本地相册和照相机功能。 代码如下: //开始拍照 pr...
  • qq_33275597
  • qq_33275597
  • 2016年10月21日 10:53
  • 1350

Android设置图片为手机壁纸,并且全屏显示。

最近项目中用到设置壁纸,但设置完的壁纸是被系统剪切掉的,怎么才能全屏显示呢?谷歌、百度一顿海搜啊,但很可惜,全是转载,就一句话setWallpaper(bitmap),我就纳闷了,有的人就为了拿那一点...
  • yuxiaohui78
  • yuxiaohui78
  • 2012年12月28日 21:27
  • 7237
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android从手机内存获得图片并全屏显示
举报原因:
原因补充:

(最多只允许输入30个字)