最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android中圖片加載到內(nèi)存的實例代碼

 更新時間:2016年09月05日 10:36:22   作者:wuyudong  
這篇文章主要介紹了android中圖片加載到內(nèi)存的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

本文演示android中圖片加載到內(nèi)存

首先設(shè)計界面:

代碼如下:

<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=".MainActivity" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="load"
android:text="加載圖片到內(nèi)存" />
<ImageView
android:id="@+id/iv"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>

往mnt/sdcard中上傳測試圖片

添加邏輯部分代碼:

public class MainActivity extends Activity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
}
public void load() {
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/a.jpg");
iv.setImageBitmap(bitmap);
}
}

運行代碼,產(chǎn)生錯誤,原因是圖片太大(選取的是大照片)

可以使用BitmapFactory中包含的靜態(tài)類Options在不解析圖片信息的前提下得到圖片的寬高信息:

BitmapFactory.Options opts = new Options();
// 不去解析圖片信息,只是得到圖片的頭部信息 寬高
opts.inJustDecodeBounds = true;

BitmapFactory.decodeFile("/sdcard/a.jpg", opts);
int imageHeight = opts.outHeight;
int imagewidth = opts.outWidth;
System.out.println("圖片寬:" + imagewidth);
System.out.println("圖片高" + imageHeight);

運行一下:

09-04 06:09:10.519: I/System.out(1812): 圖片寬:2560
09-04 06:09:10.519: I/System.out(1812): 圖片高1920

接下來得到手機屏幕的寬高:

//得到手機屏幕的寬高
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
int height = wm.getDefaultDisplay().getHeight();
int width = wm.getDefaultDisplay().getWidth();

可以看到getHeight與getWidth方法均已過時,使用下面的方法替代:

// 得到手機屏幕的寬高
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
Point outSize = new Point();
wm.getDefaultDisplay().getSize(outSize); // 3.0以后的版本才能使用

完整代碼如下:

package com.wuyudong.loadimage;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.Point;
import android.view.Menu;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv;
private int windowHeight;
private int windowWidth;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
// 得到手機屏幕的寬高
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
windowHeight = wm.getDefaultDisplay().getHeight();
windowWidth = wm.getDefaultDisplay().getWidth();
//Point outSize = new Point();
//wm.getDefaultDisplay().getSize(outSize); // 3.0以后的版本才能使用
//windowHeight = outSize.y;
//windowWidth = outSize.x;
}
public void load(View view) {
// Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/a.jpg");
// iv.setImageBitmap(bitmap);
// 圖片解析的配置
BitmapFactory.Options opts = new Options();
// 不去解析圖片信息,只是得到圖片的頭部信息 寬高
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile("/sdcard/a.jpg", opts);
int imageHeight = opts.outHeight;
int imagewidth = opts.outWidth;
System.out.println("圖片寬:" + imagewidth);
System.out.println("圖片高" + imageHeight);
// 計算縮放比例
int scaleX = imagewidth / windowWidth;
int scaleY = imageHeight / windowHeight;
int scale = 1;
if (scaleX > scaleY & scaleY >= 1) {
scale = scaleX;
}
if (scaleY > scaleX & scaleX >= 1) {
scale = scaleY;
}
//解析圖片
opts.inJustDecodeBounds = false;
//采樣率
opts.inSampleSize = scale;
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/a.jpg", opts);
iv.setImageBitmap(bitmap);
}
}

以上所述是小編給大家介紹的android中圖片加載到內(nèi)存的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 超簡單Android集成華為HMS Scankit 掃碼SDK實現(xiàn)掃一掃二維碼

    超簡單Android集成華為HMS Scankit 掃碼SDK實現(xiàn)掃一掃二維碼

    這篇文章主要介紹了超簡單Android集成華為HMS Scankit 掃碼SDK實現(xiàn)掃一掃二維碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Input系統(tǒng)截斷策略的分析與應(yīng)用詳解

    Input系統(tǒng)截斷策略的分析與應(yīng)用詳解

    這篇文章主要為大家介紹了Input系統(tǒng)截斷策略的分析與應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 為Android應(yīng)用增加渠道信息 自動化不同渠道的打包過程的使用詳解

    為Android應(yīng)用增加渠道信息 自動化不同渠道的打包過程的使用詳解

    為了統(tǒng)計渠道信息,就不得不在程序的某個地方加入渠道的信息,然后針對不同的渠道打不同的包。一般可以在Manifest文件中加入渠道編號,而不直接寫在代碼中。這樣做的好處是,可以針對不同渠道,自動化去修改Manifest文件中的渠道編號,然后自動為該渠道打包
    2013-05-05
  • Android中ImageView用法實例分析

    Android中ImageView用法實例分析

    這篇文章主要介紹了Android中ImageView用法,結(jié)合實例形式較為詳細的分析了ImageView控件的功能,屬性設(shè)置與使用相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • Flutter實現(xiàn)Text完美封裝

    Flutter實現(xiàn)Text完美封裝

    本文詳細講解了Flutter實現(xiàn)Text完美封裝,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以收藏下,方便下次瀏覽觀看
    2021-11-11
  • 分享五種Android常用布局方式

    分享五種Android常用布局方式

    Android布局是應(yīng)用界面開發(fā)的重要一環(huán),在Android中,共有五種布局方式,分別是:FrameLayout(框架布 局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局),小編通過本文逐一給大家詳解
    2015-11-11
  • android音樂播放簡單實現(xiàn)的簡單示例(MediaPlayer)

    android音樂播放簡單實現(xiàn)的簡單示例(MediaPlayer)

    本篇文章主要介紹了android音樂播放簡單實現(xiàn)的簡單示例(MediaPlayer),具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • Android中webView加載H5綁定cookie實例

    Android中webView加載H5綁定cookie實例

    這篇文章主要介紹了Android中webView加載H5綁定cookie實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 微信小程序動態(tài)的顯示或隱藏控件的方法(兩種方法)

    微信小程序動態(tài)的顯示或隱藏控件的方法(兩種方法)

    在微信小程序開發(fā)時,經(jīng)常要用到一個控件會根據(jù)不同的情況和環(huán)境動態(tài)顯示與隱藏這種情況,下面就來實踐一下吧
    2017-01-01
  • Android實現(xiàn)秒表功能

    Android實現(xiàn)秒表功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)簡易秒表功能,具備啟停功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評論

旬邑县| 金昌市| 长宁区| 湖南省| 长岭县| 望奎县| 博爱县| 霍山县| 敦化市| 介休市| 青田县| 宣武区| 桦川县| 岳池县| 崇州市| 玉屏| 罗田县| 正定县| 法库县| 甘洛县| 洛扎县| 潜江市| 壶关县| 永德县| 肥东县| 吉木萨尔县| 长丰县| 虹口区| 华坪县| 东港市| 牙克石市| 巴马| 乐陵市| 鸡东县| 铜川市| 上栗县| 沙坪坝区| 明光市| 南部县| 阳城县| 太湖县|