當前位置:首頁 » 安卓系統 » android解析圖片

android解析圖片

發布時間: 2023-12-30 11:41:35

㈠ Android 簡單的圖片查看器

說明:在文件管理器中,可以使用這個app來打開圖片

ImageView 常用的一些XML屬性和方法:

支持的scaleType 屬性:

在打開圖片的Activity里需要必須設置以下三個屬性:

可以通過設置 mimeType 來關聯對應的類型,比如: mimeType="vedio/* 關聯視頻格式的文件等。

詳細可以參考: Android 常用 mimeType 表

讀取圖片,需要寫入到外部存儲器(SD卡)的許可權:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

如果是 API23 以上還需要動態許可權:

自定義許可權的格式: 包名.permission.許可權名
自定義許可權需要在 Manifest 文件里使用 <permission android:name="..." /> 語法 進行注冊。
PackageManager.PERMISSION_GRANTED 表示許可權允許; PackageManager.PERMISSION_DENIED 表示許可權拒絕。

㈡ tif格式在android手機里用什麼軟體打開

下載一個快速的圖像查看器就可以查看tif格式的文件了。

1、打開手機界面,找到「瀏覽器」圖標

㈢ Android怎麼解析帶圖片的xml數據

前言的前言:因為內容較多,此系列將分多篇文章記載。

1、關於圖片格式
android使用的圖片格式有3種:png、jpg、gif。
官方推薦使用png格式的圖片。
jpg格式的圖片是不被推薦使用的。
gif格式的圖片是建議不使用的。
2、圖片資源調用
1、通過resource ID進行Bitmap資源的調用,例如getDrawable(int)、android:drawable或者android:icon等,一般bitmap資源文件放在res/drawable-XXXX文件夾下,這也是推薦的存放位置,因為放在此文件夾下的圖片資源android aapt工具會自動優化圖片資源文件,例如將24-bit點陣圖或者32-bit點陣圖降色到8-bit點陣圖,以節省內存,同時也不會失真。
2、如果你不希望對圖片進行優化處理,可以將圖片

㈣ Android中 怎麼獲取apk中的素材圖片

有些APK程序里的圖標、圖片很漂亮,在使用程序時你可能會想,如果能把這些漂亮的圖標、圖片提取出來就好了,其實這是可以辦到的,請看教程。

更多例子請參考android學習手冊,裡面有源碼。android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼

本教程以「電影超人」的APK安裝包為例,其它APK程序的提取方法基本相同。以下內容需要在電腦中進行操作。

1.用壓縮軟體打開APK

APK程序其實就是個ZIP壓縮包,想提取其中的資源就得先用解壓縮軟體將其打開,如圖我們在APK安裝包上右鍵、打開方式、選擇壓縮軟體,我這里選擇的是RAR,如果你安裝的是其它的解壓縮軟體,選擇它即可。如果你以前沒有用壓縮軟體打開過APK文件,可以點擊選擇默認程序然後找到解壓縮軟體進行打開。

2.解壓圖片文件夾

用解壓縮軟體打開APK程序後,如圖裡面有幾個文件夾,我們拖出「res」這個文件,一般APK程序的圖片資源都在這個文件中。

3.尋找需要的圖片

把「res」文件夾解壓後我們打開可以看到裡面的幾個文件夾一般程序圖標等圖片都在「drawable-hdpi」這個文件夾,打開看看,是不是有自己需要的東西,如果沒有再到其它的幾個文件夾中查找一下。APK文件里的圖片都是png格式的,可直接查看,這點比水果要厚道了許多。

4.反編譯查找資源

也許大家發現了,解壓後「電影超人」里大量的電影圖片並沒有看到,那是因為APK程序製作時把它們編譯到了「resources.arsc」文件里我們想提取的話把APK文件進行反編譯就可以了。具體反編譯方法這里就不講解了,請自行網路。

㈤ android怎麼用流 讀取雲端圖片

java 直接用BitmapFactory.decodeFile(pathName);就可以讀取。
或者用你的方式,BitmapFactory.decodeStream(fosfrom);
SE的學習過程中,我們就接觸到了I/O流的概念,並且使用了一些文件輸入輸出流的API來將數據保存到文件或者是從文件中讀取數據。同樣,這個手段也適用於Android系統,我們可以在應用開發過程中使用文件相關的API方法。

何謂內部存儲呢?實際上就是指將程序的私有數據以文件的形式存儲在Android設備的內存中。同理,如果是存放在SD卡等地方,就稱之為外部存儲。

我們在,你需要建立文件的輸入輸出流,並在流中操作數據。

首先是寫文件。
為了使用內部存儲向文件中寫入一些數據,你可以調用openFileOutput()方法,需要的參數為文件名和寫入模式。寫入模式實際上就是該文件的許可權歸屬,可以是公有的,也可以是私有的。如何具體地創建一個文件輸出流呢,具體方式如下:

FileOutputStream fileOut =
openFileOutput("file_name",MODE_WORLD_READABLE);

//第一個參數即文件名,第二個參數表示文件存儲的模式

對於第二個參數,需要補充的是:文件存儲的模式公有四種:

MODE_PRIVATE:該模式是默認的,通過該模式創建的文件是私有的,即只能被應用本身訪問。注意:在該模式下寫入的內容會覆蓋原有的內容。

MODE_APPEND:與上個模式類似,但在寫入內容時會檢查待創建的文件是否存在。若文件已被創建,則往該文件中追加內容,而不是覆蓋原來的內容;若文件未被創建,則創建新的文件。

MODE_WORLD_READABLE:表示當前創建的這個文件允許被其他應用讀取。

MODE_WORLD_WRITEABLE:表示當前創建的這個文件允許被其他應用寫入。

默認情況下,不僅是應用創建的文件,包括Shared
Preferences和資料庫,都是私有的。那麼問題來了,如果希望其他應用既能讀又能寫,應該怎麼辦呢?參考下面這種用法:

FileOutputStream fileOut = openFileOutput("file_name",MODE_WORLD_READABLE +
MODE_WORLD_WRITEABLE);

而對於openFileOutput()方法,它返回的是一個FileOutputStream實例。換言之,你通過文件輸出流對象中得到了這個實例,隨後你便可以調用寫相關的方法來向文件寫入數據。具體的用法如下:

String str = "shiyanlou";

//待寫入的數據

fOut.write(str.getBytes());

//實際上寫入文件的是一個位元組數組,我們用gettBytes()方法將其轉換成目標格式

fOut.close();

//記得寫入完畢後要用close()結束

接下來是讀文件。
怎樣讀取我們剛剛創建的這個文件呢?你應該猜到了,是使用openFileInput()方法。該方法需要填入待讀取文件的文件名,同樣,它返回的是一個FileInputStream的實例。具體用法如下:

FileInputStream fileIn = openFileInput(file);

在打開輸入流後,你可以調用read()方法每次從文件中讀出一個字元出來,然後裝入一個字元串變數中。具體做法如下:

int ch;

String temp="";

while( (ch = fin.read()) != -1){

temp = temp + Character.toString((char)ch);

//不斷地追加讀取的內容

}

//通過一個for循環,你最後得到的temp字元串包含了文件中的所有數據

fileIn.close();

//記得要關閉輸入流

除了上面我們用到的這些方法(比如write()、read()和close()),FileOutputStream和FileInputStream類中還有很多常用的方法,我們在下面作一簡要介紹。

FileOutputStream類中的其它常用方法:

write(byte[] b, int off, int len):該方法從指定的位元組數組開始到該文件輸出流關閉寫入len位元組。

getChannel():該方法返回一個只讀的、與文件輸出流關聯的文件通道對象(FileChannel)

getFD():該方法返回與此流有關的文件描述符對象(FileDescriptor)

FileInputStream類中的其它常用方法:

read(byte[] b, int off, int len):該方法從輸入流中數據讀取最多len個位元組到位元組數組

getChannel():該方法返回一個只讀的、與文件輸出流關聯的文件通道對象(FileChannel)

getFD():該方法返回與此流有關的文件描述符對象(FileDescriptor)

available():該方法可通過一個方法的調用者從輸入流中阻止這個輸入流返回可以讀取(或跳過)的位元組數的估計值。

四、在Android上實現文件讀寫

下面我們通過一個實例來學習如何將Java中常用的文件讀寫沿用到Android中去。

實驗步驟主要有:

(若你已在第二小節完成,請跳至下一步)使用Android
Studio創建應用項目FileIOPractice,包名為com.shiyanlou.android.fileiopractice,基於Android
5.1製作。同時添加MainActivity及其布局資源文件。

創建並打開AVD模擬器(鏡像選擇API22:Android 5.1.1)。

在res/layout/activity_main.xml資源文件放入一些文本框和按鈕。

在MainActivity.java中,初始化要用到的控制項,添加文件讀寫相關的代碼。

編譯並運行這個應用,等待應用安裝至模擬器,在模擬器中使用該應用。

現在你可以按照上述步驟自己完成該實驗。下面也給出了本實驗涉及到的源代碼和資源文件詳情,在必要時你可以使用它們。在注釋中我們也對一些模塊進行了詳細的講解。

以下是MainActivity的布局文件res/layout/activity_main.xml:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"

android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview_domain"

android:text="Shiyanlou.com"

android:textSize="40dp"

android:textColor="#11AA8C"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textView_appName"

android:text="File I/O Practice"

android:layout_below="@+id/textview_domain"

android:layout_centerHorizontal="true"

android:textColor="#000000"

android:textSize="40dp" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText"

android:hint="Input some text here."

android:focusable="true"

android:layout_marginTop="20dp"

android:layout_below="@+id/textView_appName"

android:layout_alignEnd="@+id/textView_appName"

android:layout_alignLeft="@+id/textView_appName"

android:layout_alignStart="@+id/textView_appName"

android:layout_alignRight="@+id/textView_appName"

android:inputType="textMultiLine"

android:minLines="5"

android:background="#DDDDDD" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textView_data"

android:text="Text would be shown here."

android:layout_below="@+id/button_save"

android:layout_marginTop="10dp"

android:layout_centerHorizontal="true" />

android:layout_width="120dp"

android:layout_height="wrap_content"

android:id="@+id/button_save"

android:text="Save File"

android:textColor="#FFFFFF"

android:background="#11AA8C"

android:layout_alignLeft="@+id/textView_appName"

android:layout_alignStart="@+id/textView_appName"

android:layout_below="@+id/editText"

android:layout_marginTop="20dp"/>

android:layout_width="120dp"

android:layout_height="wrap_content"

android:id="@+id/button_load"

android:text="Load File"

android:textColor="#FFFFFF"

android:background="#11AA8C"

android:layout_alignTop="@+id/button_save"

android:layout_alignRight="@+id/editText"

android:layout_alignEnd="@+id/editText" />

以下是src/MainActivity.java中的源代碼:

package com.shiyanlou.android.fileiopractice;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class MainActivity extends Activity {

private Button button_save;

private Button button_load;

private TextView textView_status;

private EditText editText;

//聲明各個控制項

private String data;

private String file = "shiyanlou_file";

//聲明用於存放數據的變數data和文件名常量file

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button_save =(Button)findViewById(R.id.button_save);

button_load =(Button)findViewById(R.id.button_load);

editText =(EditText)findViewById(R.id.editText);

textView_status =(TextView)findViewById(R.id.textView_data);

//實例化各個控制項

//為按鈕設置點擊事件監聽器

//首先是保存按鈕(寫操作)

button_save.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

data = editText.getText().toString();

//調用getText()方法從文本框中讀取內容,使用toString()方法將其轉化為String類型數據,並存放到data變數中

try {

//對於文件讀寫操作應使用異常處理流程

FileOutputStream fileOut = openFileOutput(file, MODE_APPEND);

// 此處用到了MODE_PRIVATE,在新版本的Android系統中,不推薦使用MODE_WORLD_READABLE等模式

// 這是因為Android中為應用間的數據交互提供了更好的支持,如Content Privoder等,你可一進步了解

fileOut.write(data.getBytes());

//用write()方法保存數據

fileOut.close();

//關閉輸出流

Toast.makeText(getBaseContext(), "File saving completed.",
Toast.LENGTH_SHORT).show();

//用一個Toast來告訴用戶已經寫入完畢了

} catch (Exception e) {

e.printStackTrace();

}

}

});

//其次是讀取按鈕(讀操作)

button_load.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

try {

//同理,建立文件輸入流

FileInputStream fileIn = openFileInput(file);

int ch;

//聲明一個整型變數ch用於接收數據

String tempText = "";

//這里的tempText用於臨時存放讀取的數據(字元串)

while ((ch = fileIn.read()) != -1) {

//這里的-1是特定的狀態碼,表示文件讀取結束

//在while循環中逐個讀取數據,並追加到tempText中

tempText = tempText + Character.toString((char) ch);

//將ch轉化為字元

}

textView_status.setText(tempText);

//讀取完畢後將文字顯示出來

Toast.makeText(getBaseContext(), "File reading completed.",
Toast.LENGTH_SHORT).show();

//同樣用一個Toast告知用戶已經讀取完成

} catch (Exception e) {

}

}

});

}

}

檢查一下代碼,編譯並運行該應用。在模擬器中嘗試輸入一些信息,保存一下,再試著讀取它們。

熱點內容
python模擬訪問網頁 發布:2024-11-29 04:33:21 瀏覽:227
除了安卓還有什麼可以下載的 發布:2024-11-29 04:05:44 瀏覽:381
coreldraw用戶臨時文件夾 發布:2024-11-29 04:05:44 瀏覽:740
如何設置ipad文件夾 發布:2024-11-29 03:59:16 瀏覽:141
如何給u盤文件夾加密 發布:2024-11-29 03:48:37 瀏覽:693
傳奇打元寶腳本 發布:2024-11-29 03:39:52 瀏覽:843
如何裝linux系統 發布:2024-11-29 03:38:17 瀏覽:183
咋清理緩存 發布:2024-11-29 03:18:38 瀏覽:13
linux伺服器的配置文件 發布:2024-11-29 03:18:31 瀏覽:616
安卓軟體誤刪軟體如何恢復 發布:2024-11-29 02:55:58 瀏覽:233