অ্যান্ড্রয়েড: স্ক্রিনের সাথে মানানসই চিত্রের দৃশ্যে প্রসারিত চিত্র


126

আমি একজন আছে imageviewতার উচ্চতা এবং প্রস্থ সেট করা আছে তা fill_parentএকটি সঙ্গে linearlayoutএকই মান সেট রয়েছে। সুতরাং আমি মনে করি এটি আমার চিত্রগুলি স্ক্রিনে ফিট করার জন্য সেট করা উচিত। তবে এটি কেবল 80% (ল্যান্ডস্কেপ মোডে মার্জিন উপরে এবং নীচে) এর মতো ফিট করে।

আমি নিম্নলিখিত কোডটি সাফল্য ছাড়াই চেষ্টা করেছি:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

imgView.setMinimumWidth(width);
imgView.setMinimumHeight(height);

imgView.setMaxWidth(width);
imgView.setMaxHeight(height);

অন্য কোন ধারণা?


যদিও এটি কিছুটা আলাদা সমস্যা, এই উত্তরটি আপনাকে সহায়তা করা উচিত।
— ফ্রেডলি

উত্তর:


317

প্রো-ব্যাকরণগতভাবে ব্যবহার পরিবর্তন করতে:

imgview.setScaleType(ScaleType.FIT_XY);

অথবা

এক্সএমএল ব্যবহার থেকে পরিবর্তন করতে:

 android:scaleType="fitXY"

26
আমি জানি এটি আপনি কী চেয়েছিলেন তবে যে চিত্রগুলির জন্য আপনি অনুপাতের অনুপাত সম্পর্কে যত্নশীল সেখানে এটি প্রসারিত হবে।
— আর্টেম রাশাকোভস্কিই

স্ক্রোলভিউয়ের মধ্যে চিত্রকল্পের জন্য আশ্চর্য কাজ করে। এমনকি দিকটি সঠিক রাখা হয়েছে।
— জেনিসি

10
লেআউট এক্সএমএল, অ্যান্ড্রয়েডে একই সংজ্ঞায়িত করা যেতে পারে: স্কেলটাইপ = "ফিট এক্সওয়াই"
— সত্যেশ

9
চিত্রটি সমস্ত অঞ্চল পূরণ করুন এবং একটি ভাল দিক অনুপাত ব্যবহার করুনv.setAdjustViewBounds(true); v.setScaleType(ImageView.ScaleType.CENTER_CROP);
— মার্কো ফ্লোরিয়ান


119

আপনার লেআউট এর পিএসএল এর এক্সএমএল ফাইলটি দিন android:scaleType="fitXY"
: চিত্রটি প্রসারিত এবং দৃশ্যের সাথে মানানসই হিসাবে পূর্বনির্ধারিত হিসাবে ব্যাকগ্রাউন্ড সেট করার android:src="..."পরিবর্তে চিত্রটি সেট করা হয় তখন এটি প্রযোজ্য android:background="..."।


পটভূমি জিনিসটি আমার জন্য সমস্যার সমাধান করতে সহায়তা করে নি, আমি কি কিছু ভুল করছি? দয়া করে একবার দেখুন: stackoverflow.com/questions/14164473/…
— ধীররাজ ভাস্কর

1
আপনি যদি চিত্রগুলির প্রস্থকে হার্ডকোড করেন এবং উচ্চতাটি স্কেল করতে চান তবে এটি অনুপাতের যত্ন নেবে না
— অক্ষত আগরওয়াল

আমি কীভাবে পুরো পর্দার সাথে মানিয়ে নিতে পারি? আমি এটি এখনও আনুপাতিক হতে চাই
— রুচির বড়োনিয়া

এটি বলার জন্য +1 অ্যান্ড্রয়েডের ক্ষেত্রে প্রযোজ্য: src = "..." অ্যান্ড্রয়েডের তুলনায়: ব্যাকগ্রাউন্ড = "..." এটি খুব গুরুত্বপূর্ণ
— ড্রাগনফায়ার

20

এটা ব্যবহার কর:

ImageView.setAdjustViewBounds(true);

4
এর সাথে মিলিয়ে android:scaleType="fitXY"এটি কাজ করে। ধন্যবাদ
— smac89

@ smac89 এই সংমিশ্রণ এবং কেবল FIT_CENTER ব্যবহারের মধ্যে পার্থক্য কী? FIT_CENTER ব্যবহার করা উচিত নয়?
— জেনিক্স

@ জিনিক্স, মনে রাখবেন যে আমি অ্যান্ড্রয়েডের শেষ মুহূর্তে স্পর্শ করেছি তার পরে কিছুক্ষণ হয়েছে, তবে আমি বিশ্বাস করি যে এটি করার কারণটি fitXYহ'ল চিত্রটি সেট করা ফ্রেমের সাথে / ফ্রেমের সাথে ফিট করার জন্য আনুপাতিকভাবে প্রসারিত হয় FIT_CENTERsounds দেখার কেন্দ্রে তবে ভিউটি পূরণ করে না। আমি ভুল হতে পারি, তবে আপনি যা পরীক্ষা করে তা পরীক্ষা করতে পারেন
— smac89

@ smac89 জিজ্ঞাসার আগে আমি ইতিমধ্যে উভয়টি পরীক্ষা করে দেখেছি এবং এটি ঠিক একই কাজ করেছে। আমি কারণটি সম্পর্কে আগ্রহী ছিলাম তবে এখন আপনি মনে করেন যে আপনি FIT_CENTER জানেন না ঠিক ঠিক তেমনই আপনি আমাকে যে সংমিশ্রণটি সম্পর্কে জানাতে চেয়েছিলেন আমি তার সম্পর্কে জানি না। :)
— জেনিক্স

9

আপনি যদি ব্যবহার করেন android:scaleType="fitXY"তবে আপনাকে অবশ্যই উল্লেখ করতে হবে

android:layout_width="75dp" এবং android:layout_height="75dp"

যদি র‌্যাপ_ কনটেন্ট ব্যবহার করে তবে এটি আপনার প্রয়োজনীয়তা পর্যন্ত প্রসারিত হবে না

<ImageView
android:layout_width="75dp"
android:layout_height="75dp"
android:id="@+id/listItemNoteImage"
android:src="@drawable/MyImage"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:scaleType="fitXY"/>


2

আমি এই android:scaleType="fitXY"কোডটি এক্সএমএল ফাইলে ব্যবহার করেছি।


0

কেবল আপনার ইমেজভিউয়ের উচ্চতা এবং প্রস্থকে মোড়ানো_পরিচয় ও ব্যবহার করতে পরিবর্তন করুন

exampleImage.setScaleType (ImageView.ScaleType.FIT_XY);

আপনার কোডে


-11

ব্যবহার করার চেষ্টা করছেন:

imageview.setFitToScreen(true);
imageview.setScaleType(ScaleType.FIT_CENTER);

এটি সঠিক অনুপাতের সাথে আপনার চিত্রদর্শনটি স্ক্রিনে ফিট করবে।


12
"imageview.setFitToScreen (সত্য);" - এটা কি? কিছু অপ্রকাশিত পদ্ধতি?
— মালাচিয়াজ

: আমি অন্ধকার ব্যবহার করছি এবং এই সঙ্কলন নেইimageview.setFitToScreen(true)
— শিক্ষার্থী

5
অ্যান্ড্রয়েডে এর মতো কোনও পদ্ধতি নেই।
— নাইটফিউরি

সে বলতে setFitsSystemWindows()চাইছিল ??
— নিষেধাজ্ঞাগুলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.