Android 자산 사용
자산은 애플리케이션에 텍스트, xml, 글꼴, 음악 및 비디오와 같은 임의의 파일을 포함하는 방법을 제공합니다. 이러한 파일을 "리소스"로 포함하려는 경우 Android는 해당 리소스 시스템으로 처리하며 원시 데이터를 가져올 수 없습니다. 데이터를 그대로 액세스하려는 경우 자산이 이를 수행하는 한 가지 방법입니다.
프로젝트에 추가된 자산은 AssetManager를 사용하여 애플리케이션에서 읽을 수 있는 파일 시스템처럼 표시됩니다.
이 간단한 데모에서는 프로젝트에 텍스트 파일 자산을 추가하고, 사용하여 AssetManager
읽고, TextView에 표시합니다.
프로젝트에 자산 추가
자산은 프로젝트의 폴더로 Assets
이동합니다. 라는 read_asset.txt
이 폴더에 새 텍스트 파일을 추가합니다. "자산에서 왔어요!"와 같은 텍스트를 그 안에 배치합니다.
Visual Studio에서 이 파일에 대한 빌드 작업을 AndroidAsset으로 설정해야 합니다.
올바른 BuildAction 을 선택하면 파일이 컴파일 시간에 APK로 패키지됩니다.
자산 읽기
자산은 AssetManager를 사용하여 읽습니다. AssetManager
인스턴스는 활동과 같은 자산 속성에 Android.Content.Context
액세스하여 사용할 수 있습니다.
다음 코드에서는 read_asset.txt 자산을 열고 내용을 읽고 TextView를 사용하여 표시합니다.
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Create a new TextView and set it as our view
TextView tv = new TextView (this);
// Read the contents of our asset
string content;
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader (assets.Open ("read_asset.txt")))
{
content = sr.ReadToEnd ();
}
// Set TextView.Text to our asset content
tv.Text = content;
SetContentView (tv);
}
이진 자산 읽기
위의 예제에서 사용하는 StreamReader
것은 텍스트 자산에 적합합니다. 이진 자산의 경우 다음 코드를 사용합니다.
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Read the contents of our asset
const int maxReadSize = 256 * 1024;
byte[] content;
AssetManager assets = this.Assets;
using (BinaryReader br = new BinaryReader (assets.Open ("mydatabase.db")))
{
content = br.ReadBytes (maxReadSize);
}
// Do something with it...
}
애플리케이션 실행
애플리케이션을 실행하면 다음이 표시됩니다.