بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

والپیپر و تنظیم ارتفاع آن(حل شد)

مدیریت گفتگو
f-Dehghan 11 سال پیش
آخرین تغییر: 11 سال پیش

این کد والپیپر توی بعضی گوشیها ،  ست میشه ولی توی گوشی مثل سامسونگ گالاکسی نوت 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

نظرات

Spirit 11 سال پیش
دو تا خطا دارین اولی OutOfMemoryError که قبلاً بچه ها دربارش بحث کردن - تو آموزش ها هم استاد هم به نظر حداقل اشاره کرده باشن خطارم نیست، دومی رو هم نمیدونم چیه InvocationTargetException
f-Dehghan 11 سال پیش
یه جا گفتن android:largeHeap="true" رو به منیفست اضافه کردند درست شده .کدوم قسمتش؟ توی اکتیویتی که کرش میکنه؟
Hajhosseini 11 سال پیش
سایز عکس هاتون چند در چنده؟ حجم مهم نیست ولی سایز رو نباید خیلی بالا بگیرید.
f-Dehghan 11 سال پیش
1920 *1080 میخوام عکسها والپیپر تبلت قرار بگیره .سایزش کمتر بشه کیفتش کم نمیشه؟ چه حدودی خوبه؟
f-Dehghan 11 سال پیش
آخه تبلتی که ورژن اندرویدش پایینه بدون مشکل اجرا میکنه کرش هم نمیکنه.ولی ورژن 4.4 کرش میده .چرا؟
f-Dehghan 11 سال پیش
همین کد توی صفحه اصلی توی دستور کلیک یک دکمه خوب کار میکنه. ولی وقتی روی عکس thumbnail کلیک میشه میره توی صفحه که عکس بزرگ وسط صفحه قرار داره با یک دکمه که اگر میخواد پس زمینه قرارش بده.اگر روی دکمه کلیک کنم این کرش اتفاق میفته.یعنی مموری به خاطر عکس بزرگ وسط صفحه پر میشه؟
Hajhosseini 11 سال پیش
سایزتون رو 960 در 540 بگیرید، توی گوشی و تبلت تفاوت خاصی نمیکنه، ولی روش درست اینه که شما سایز صفحه نمایش رو بگیرید و بعد عکس رو تبدیل به Bitmap کنید و بعد اون Bitmap رو به اندازه سایز صفحه گوشی Resize کنید. من سایز عکس های فول سایزم در برنامه هام رو همین سایز میگیرم و چون برنامه ها روی چند گوشی و چند تبلت تست میشن، به این نتیجه رسیدم که نیازی به سایز بزرگتر از این ندارم، شما هم میتونید حداکثر سایزتون رو همین بگیرید. کیفیت عکس با سایز عکس متفاوتن و همیشه سایز بزرگتر کیفیت بیشتری نداره.
f-Dehghan 11 سال پیش
ممنون ."توی گوشی و تبلت تفاوت خاصی نمیکنه" .این مطلب کارمو راه انداخت .تشکر
f-Dehghan 11 سال پیش
دو تا پاسخ پایین تر یه قسمت دیگه سوالمه .دوستان کسی میتونه راهنمایی کنه؟

پاسخ‌ها 4

tux-world 11 سال پیش

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

نظرات

صالحی 11 سال پیش

فرض کنید که در پوشه های drawable از پروژه اندروید، یک عکس با نام myImage داریم و می خواهیم که از آن، یک Bitmap بسازیم، برای این منظور، کدهای زیر را می نویسیم :

 

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.myImage);

 

 

یا همون گزینه ای که تو منیفست گذاشتی  ولی بیت مپ کردن بهتره  بعد از عکس استفاده کن

 

 

نظرات

f-Dehghan 11 سال پیش
از همین کد استفاده کردم.
f-Dehghan 11 سال پیش

يه سوال دیگه .من دیفالت برنامه رو روی 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);

نظرات

f-Dehghan 11 سال پیش
دوستان راه حلی اگر دارید خیلی به من کمک میکنه.با سرچ به جایی نرسیدم.
f-Dehghan 11 سال پیش

این طوری نوشتم کارمو راه انداخت .

 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);

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .