當前位置:首頁 » 安卓系統 » android引用資源文件

android引用資源文件

發布時間: 2024-12-31 02:27:37

A. Android項目中如何使用資源文件

Android SDK在編譯應用時會在R類中為/res/目錄下的所有資源創建索引項,因此在java代碼中訪問資源主要是通過R類來完成。

語法格式為:

package_name.R.resource_type.resource_name

  • package_name:指定R類所在的包,實際上就是使用全限定類名。不過,要是在java程序中已導入R類所在包,可以省略包名。

  • resource_type:R類中代表不同資源類型的子類,例如string代表字元串資源。

  • resource_name:指定資源的名稱。

//從drawable資源中載入圖片,並設為該窗口的背景
getWindow().setBackgroundDrawableResource(R.drawable.back);
//從string資源中獲取指定字元串源碼,並設置該窗口的標題
getWindow().setTitle(getResources().getText(R.string.main_title));

B. android 怎麼在代碼中引用assets中的資源

1。獲取資源的輸入流

資源文件 sample.txt 位於 $PROJECT_HOME/assets/ 目錄下,可以在 Activity 中通過

Context.getAssets().open(「sample.txt」)

方法獲取輸入流。

注意:如果資源文件是文本文件則需要考慮文件的編碼和換行符。建議使用UTF-8和Unix換行符。

2. WebView 載入assets目錄下的html文件

資源文件 sample.html 位於 $PROJECT_HOME/assets/ 目錄下,可以通過以下代碼

WebView.loadUrl(「file:///android_asset/sample.html」);

載入html文件。

C. Android中,再一個類中如何引用資源文件字元串

你可以在Adapter類中寫一個屬性:
private Activity context;
然後你在寫一個構造方法:
public xxAdapter(xx adpter ,Context context){
this.contxt=context;
}

D. 如何在一個android工程中調用另一個android工程的代碼和資源啊

現在已經有了一個Android工程A。我們想擴展A的功能,但是不想在A的基礎上做開發,於是新建了另外一個Android工程B,想在B中引用A。

1. 把工程A做成純Jar包,這樣其他的工程就可以直接引用了。

但是,如果在工程A中用了R.java中的引用,則無法打成jar包了。原因是R.java是自動生成的,是動態的,每次編譯都是不相同的。如果一定要做成jar包,就不能使用自動生成的R文件,用到資源時候就要寫代碼去獲取。

有時會報錯:Conversion to Dalvik format failed with error 1

可能是多層包文件重復導入,沖突。。。

這時可以試試方法2

 

2.將工程A做成android library project。

設置工程A,右鍵->Properties->Android,將Is library項選中,然後Apply。設置工程B,右鍵->Properties->Android,在Library中,點擊Add按鈕,將A工程加入,然後Apply。此時在B中就引入了A中的資源和代碼,這些資源和代碼都可以直接調用。需要注意的是,因為A已經不再是一個完整的Android應用,而是一個類庫工程,所以有一些內容還需要在B中配置一下。比如A中有lib庫引用,則B中也要加入該lib庫;比如A中的AndroidManifest.xml文件的內容,在B的AndroidManifest.xml文件中也要相應加上。。。
如果不需要引用A工程的資源文件,同樣只需得到jar文件,
設置工程A,右鍵->Properties->Android,將Is library項選中,然後Apply。在A工程的bin目錄下能得到一個jar文件,可以到B工程中的libs目錄下直接引用。
 
如果能用jar當然最好,但是jar文件不能把res目錄下的資源打包進去,所以才出現lib工程。

創建和使用Android library工程
 

摘要: 創建library供多個工程共享代碼、資源是非常常見的需求,網上這種資料非常少,基本上都是講創建java工程,然後export,這種方式缺點非常多,大家可以自己google一下。本文著重介紹如何創建Android library,並且在 ...
創建library供多個工程共享代碼、資源是非常常見的需求,網上這種資料非常少,基本上都是講創建java工程,然後export,這種方式缺點非常多,大家可以自己google一下。
本文著重介紹如何創建Android library,並且在工程中使用此library提供的資源,具體步驟如下:
1. 創建一個Android工程,命名為MyLib
2. 進入工程設置選中Is Library

3. 創建另一個Android工程,命名為MyProj
4. 進入工程設置,添加MyLib

5. 在MyProj的AndroidManifest.xml中加入對library中activity的引用
<activity android:name="net.devdiv.mylib.MyLib" />
6. 由於編譯後library中的資源和引用它的project資源是合並在一起的,為了避免重名問題,需要對library中資源進行重命名
1). 把main.xml改為mylib.xml,同時修改MyLib.java代碼setContentView(R.layout.mylib);
2). strings.xml修改為
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="mylibhello">String fetched from lib!</string>
    <string name="mylib_app_name">MyLib</string>
</resources>
7. 在MyProj中引用MyLib的資源
package net.devdiv.myproj;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import net.devdiv.mylib.*;
import android.content.Intent;

public class MyProj extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView tv = (TextView)findViewById(R.id.myprojtext);
       tv.setText(R.string.mylibhello);
        
        Intent it = new Intent(this, MyLib.class);
        startActivity(it);
    }
}

E. 關於android怎麼動態調用資源文件使根據不同的情況選擇不同的資源文件

android ndk下面生成動態庫so文件的方法很多,但是這里只提供一種方法,更多的生成方法可以看,「ndk 編譯靜態庫」:
http://jingyan..com/article/63f236280b90690208ab3d12.html
2
fkAdd.c 的內容如下:
#include <jni.h>
int fkAdd(int nX, int nY)
{
return nX + nY;
}
3
Android.mk 的內容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= fkAdd
LOCAL_SRC_FILES:= fkAdd.c
include $(BUILD_SHRRED_LIBRARY)
1、打開 eclipse
2、點擊 文件
3、點擊 新建
4、點擊 other...

1、展開 Android 選項;
2、選擇 Android Project from Existing Code;
3、點擊 Next

1、輸入 Root Director;
2、取消 tests;
3、選中 Copy projects into workspace;
4、點擊 Finish;

1、右鍵工程;
2、選擇 Android Tools;
3、Add Native Support...;

點擊 Finish

修改android sdk 版本為 4.0.3;
關於如何修改 android sdk 版本:
http://jingyan..com/article/c910274bfdd000cd371d2d4b.html
修改 Min SDK version:15
修改 Target SDK version:19

在jni目錄下面新建文件fkAdd.c 的內容如下:
int fkAdd(int nX, int nY)
{
return nX + nY;
}

臨時修改 Android.mk 文件內容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#LOCAL_MODULE := hello-jni
#LOCAL_SRC_FILES := hello-jni.c
LOCAL_MODULE := fkaddso
LOCAL_SRC_FILES := fkAdd.c
include $(BUILD_SHARED_LIBRARY)

使用快捷鍵Ctrl+B編譯後可以在libs目錄下面看到生成的一些列的
libfkaddso.so文件,如下圖所示

F. android資源文件中怎麼表示

1.引用自定義資源。格式:@[package:]type/name
android:text="@string/hello"

2.引用系統資源。格式:@android:type/name
android:textColor="@android:color/opaque_red"
注意:其實@android:type/name是@[package:]type/name 的一個子類
二.@*代表引用系統的非public資源。格式:@*android:type/name
系統資源定義分public和非public。public的聲明在:
<sdk_path>\platforms\android-8\data\res\values\public.xml

G. 怎樣使用Android Studio引用本地aar文件

要輸出 aar 文件,必須將 Mole 配置為 library,在 gradle 文件中如下:
輸出 aar : apply plugin: 'com.android.library'; 輸出 apk :apply plugin: 'com.android.application'。
將 Mole 配置為 library 後,構建輸出一個 aar 文件,根據渠道和 BuildType 的不同,在相應的目錄下可以找到。比如對 BuildType 為 debug 的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其實就是一份 zip 包,和 jar 不同的是,它將一些資源文件、第三方庫文件、so 文件等等都打包在內,而代碼文件編譯後壓縮在在 classes.jar 中。比如:

3、導入 aar 的方式引用
這種方式比較簡單,打開 Project Structure,添加一個新 Mole,然後選擇 Import *.JAR or *.AAR Package 的方式導入:

導入後,在你的工程下面,會生成一個文件夾,裡面是 aar 文件以及 Android Studio 的配置文件。

接著可以在 gradle 中配置依賴了,其他 Mole 可以引用這個 Mole 了,依賴方式使用compile project 的方式即可。
缺點:被依賴的 aar 無法 F3 跟進去,無法看到資源文件內容以及目錄層級等等缺陷。
4、使用配置依賴的方式引用
gradle 其實還有另一種依賴可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要將 aar 文件放入引用 Mole 的 libs 目錄下,和一般的 jar 文件類似。然後在 gradle 配置文件中把 libs 目錄加入依賴:

<code class="hljs bash">repositories {
flatDir {
dirs 'libs'
}
}</code>

接著在 gradle 的依賴配置中加入 compile(name: 'xxx', ext: 'aar') 這一句,依賴即可關聯完畢。構建一下工程,在 Mole 的 build/intermediates/exploded-aar 目錄下,可以看到有一些臨時文件生成:

看起來完全是引用 aar 的解壓版本。Android Studio 安裝反編譯插件後,可以通過 F3 跟進到 class 文件裡面,如果你有被依賴 Mole 的源代碼的話,還可以 Attach Source 關聯源代碼查看。另外,可以很方便的查看 aar 中的資源文件。
另外,這種依賴方式更新 aar 後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。望採納,謝謝。

熱點內容
精密壓縮空氣過濾器 發布:2025-03-22 16:22:14 瀏覽:441
如何修改網站的資料庫 發布:2025-03-22 16:16:35 瀏覽:460
android實時系統 發布:2025-03-22 16:16:33 瀏覽:242
oracle資料庫時間類型 發布:2025-03-22 16:11:07 瀏覽:51
PHP製作 發布:2025-03-22 16:10:05 瀏覽:732
人類語言編譯器 發布:2025-03-22 16:00:19 瀏覽:176
美團編程 發布:2025-03-22 15:50:54 瀏覽:802
禁止地區訪問 發布:2025-03-22 15:48:44 瀏覽:202
ps必須存儲為副本 發布:2025-03-22 15:43:49 瀏覽:112
mac輸出源碼 發布:2025-03-22 15:24:21 瀏覽:120