উত্তর:
রিমোটভিউজে সমস্ত পরিবর্তন সিরিয়ালাইজড হওয়ার কারণে এটি ঘটে (যেমন setInt এবং setImageViewBitmap)। বিটম্যাপগুলি একটি অভ্যন্তরীণ বান্ডেলে ক্রমযুক্ত হয়। দুর্ভাগ্যক্রমে এই বান্ডিলটির খুব ছোট আকারের সীমা রয়েছে।
আপনি চিত্রের আকারটি এভাবে স্কেল করে সমাধান করতে পারেন:
public static Bitmap scaleDownBitmap(Bitmap photo, int newHeight, Context context) {
final float densityMultiplier = context.getResources().getDisplayMetrics().density;
int h= (int) (newHeight*densityMultiplier);
int w= (int) (h * photo.getWidth()/((double) photo.getHeight()));
photo=Bitmap.createScaledBitmap(photo, w, h, true);
return photo;
}
পর্যাপ্ত পরিমাণে ছোট হওয়ার জন্য নতুন উচ্চতা চয়ন করুন (এটি স্ক্রিনে নেওয়া উচিত প্রতিটি স্কয়ারের জন্য 100 ডলার) এবং এটি আপনার উইজেটের জন্য ব্যবহার করুন এবং আপনার সমস্যার সমাধান হবে :)
আপনি একটি বাইটের অ্যারে হিসাবে বিটম্যাপটি সংকুচিত করতে পারেন এবং তারপরে এটিকে অন্য ক্রিয়াকলাপে সঙ্কুচিত করতে পারেন।
কম্প্রেস !!
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
setresult.putExtra("BMP",bytes);
কমপ্রেস !!
byte[] bytes = data.getByteArrayExtra("BMP");
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
সঠিক পন্থা ব্যবহার করা setImageViewUri()
(ধীর) অথবা setImageViewBitmap()
এবং পুনরায় RemoteView
গুলি প্রত্যেক সময় আপনি বিজ্ঞপ্তি আপডেট করুন।