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


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.