تعیین یک عکس قرار گرفته در حافظه خارجی (External Storage) به عنوان عکس پس زمینه گوشی
vahid hasani |
|
۰ نظر
تعیین یک عکس قرار گرفته در حافظه خارجی (External Storage) به عنوان عکس پس زمینه گوشی (wallpaper)، در برنامه نویسی اندروید
فرض کنید که یک عکس در مسیر زیر از حافظه خارجی (External Storage) قرار دارد و قصد داریم که آن را به عنوان عکس پس زمینه گوشی (wallpaper) قرار دهیم :
/myFolder/myImage.jpg
برای این منظور، باید کد زیر در Activity اجرا شود :
String photoPath = Environment.getExternalStorageDirectory()+"/myFolder/myImage.jpg";
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);
WallpaperManager wpm = WallpaperManager.getInstance(getApplicationContext());
try {
wpm.setBitmap(bitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
در کد بالا، ابتدا عکس را از حافظه خارجی (External Storage) خوانده و به Bitmap تبدیل می کنیم. سپس با استفاده از روش setBitmap از کلاس WallpaperManager ، آن را به عنوان عکس پس زمینه گوشی (wallpaper) قرار می دهیم.
برای اجرای صحیح کد بالا، باید اجازه های دسترسی مربوط به تغییر عکس پس زمینه گوشی (wallpaper) و همچنین خواندن و نوشتن در حافظه خارجی (External Storage) را در فایل AndroidManifest.xml از پروژه اندروید ذکر کنیم :
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
به عنوان مثال، فایل AndroidManifest.xml پروژه اندروید می تواند به شکل کلی زیر باشد :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kelidestan.example"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.kelidestan.example.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>