والپیپر و تنظیم ارتفاع آن(حل شد)
این کد والپیپر توی بعضی گوشیها ، ست میشه ولی توی گوشی مثل سامسونگ گالاکسی نوت 3 ،4.4.2 خطا میده
Thread thread4 = new Thread(new Runnable() {
@Override
public void run() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
height = metrics.heightPixels;
width = metrics.widthPixels;
mBitmap = BitmapFactory.decodeResource(getResources(), mFullSizeIds[position]);
bitmap = Bitmap.createScaledBitmap(mBitmap, width, height, false);
wallpaperManager = WallpaperManager.getInstance(SingleViewActivity.this);
wallpaperManager.setWallpaperOffsetSteps(1, 1);
wallpaperManager.suggestDesiredDimensions(width, height);
try {
wallpaperManager.setBitmap(bitmap);
HANDLER.post(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SingleViewActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Toast.makeText(SingleViewActivity.this, R.string.choose, Toast.LENGTH_SHORT).show();
SingleViewActivity.this.finish();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
}
catch (IOException e) {
e.printStackTrace();
}
}
});
thread4.start();
لاگ کتش اینه.
04-12 21:56:26.466: E/dalvikvm-heap(7621): Out of memory
04-12 21:56:28.126: E/ActivityThread(7677): java.lang.reflect.InvocationTargetException
04-12 21:56:28.126: E/ActivityThread(7677): java.lang.UnsatisfiedLinkError










در صورتی که شما عکسی با سایز بزرگ دارید این مشکل پیش میاد بهتره که android:largeHeap="true" رو تو مانیفست قسمت application بزارید تست کنید

فرض کنید که در پوشه های drawable از پروژه اندروید، یک عکس با نام myImage داریم و می خواهیم که از آن، یک Bitmap بسازیم، برای این منظور، کدهای زیر را می نویسیم :
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.myImage);
یا همون گزینه ای که تو منیفست گذاشتی ولی بیت مپ کردن بهتره بعد از عکس استفاده کن

يه سوال دیگه .من دیفالت برنامه رو روی LANDSCAPE تنظیم کردم. اگر برنامه روی گوشی نصب بشه به جای اینکه عکسو LANDSCAPE بذاره این شکلی میکنه راهی هست بهش بگم تصویرو مثل پایینی بذاره؟
میخوام حتی اگه گوشی بود این طوری باشه
و یا ارتفاعش بشه ارتفاع گوشی و عکس wide بشه یعنی ارتفاع عکس با ارتفاع گوشی ست بشه با کد زیر عرض و ارتفاع گوشی رو گرفتم توی خط آخر چطور فقط ارتفاع رو بهش بدم؟
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
height = metrics.heightPixels;
width = metrics.widthPixels;
mBitmap = BitmapFactory.decodeResource(getResources(), mFullSizeIds[position]);
bitmap = Bitmap.createScaledBitmap(mBitmap, width, height, false);

این طوری نوشتم کارمو راه انداخت .
mBitmap = BitmapFactory.decodeResource(getResources(), mFullSizeIds[position]);
int mywidth = (mBitmap.getWidth());
bitmap = Bitmap.createScaledBitmap(mBitmap, mywidth, height, false);
wallpaperManager = WallpaperManager.getInstance(SingleViewActivity.this);
wallpaperManager.setWallpaperOffsetSteps(1, 1);
wallpaperManager.suggestDesiredDimensions(mywidth, height);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .