অ্যান্ড্রয়েড ইমেজভিউ ম্যাক্সউইথের সম্মান করছে না?


113

সুতরাং, আমার কাছে একটি চিত্রদর্শন আছে যা একটি স্বেচ্ছাসেবী চিত্র প্রদর্শন করা উচিত, যা ইন্টারনেট থেকে ডাউনলোড করা একটি প্রোফাইল ছবি। আমি চাই যে এই চিত্রকল্পটি এর চিত্রটি পিতামাতার ধারকের উচ্চতার অভ্যন্তরে মাপসই করতে এবং সর্বাধিক 60 ডিপ প্রস্থের সেট করবে। তবে, চিত্রটি লম্বা অনুপাত অনুসারে এবং প্রস্থের পূর্ণ 60 ডিপ প্রয়োজন না হলে চিত্রের ভিউটির প্রস্থ হ্রাস হওয়া উচিত যাতে চিত্রটির ব্যাকগ্রাউন্ডটি চিত্রের চারপাশে খুব সুন্দরভাবে ফিট করে।

আমি এটি চেষ্টা করেছিলাম,

<ImageView android:id="@+id/menu_profile_picture"
    android:layout_width="wrap_content"
    android:maxWidth="60dip"
    android:layout_height="fill_parent"
    android:layout_marginLeft="2dip"
    android:padding="4dip"
    android:scaleType="centerInside"
    android:background="@drawable/menubar_button"
    android:layout_centerVertical="true"/>

তবে এটি কোনও কারণে ইমেজভিউকে দুর্দান্ত করে তোলে, সম্ভবত এটি চিত্রের অভ্যন্তরীণ প্রস্থ এবং এটি সেট করার জন্য মোড়ক_ সামগ্রী ব্যবহার করেছে - যাইহোক, এটি আমার ম্যাক্সউইথ বৈশিষ্ট্যকে সম্মান করে না .. এটি কি কেবল কিছু ধরণের পাত্রেই কাজ করে? এটি একটি লিনিয়ারালাউট ...

কোনও পরামর্শ?

উত্তর:


302

আহ,

android:adjustViewBounds="true"

ম্যাক্সউইথের কাজ করার জন্য প্রয়োজনীয়।

এখন কাজ!


ভাগ করে নেওয়ার জন্য THX, আপনি আপনার উত্তরটি সঠিক হিসাবে চিহ্নিত করতে পারেন দয়া করে !?
ওয়ারেনফেইথ

1
অনেক অনেক ধন্যবাদ .. আমার জন্য ভাল কাজ করেছেন :)
নীরব ডাঙ্গী

7
এবং প্রোগ্রাম্যালিমে: ইমেজভিউ.সেটএডজাস্টভিউবাউন্ডস (সত্য);
সাইরিল জ্যাকোয়াার্ট 14'15

7
এই সন্ধানটি জুড়ে আসা যে কোনও ব্যক্তির পক্ষে এটি কাজ করে না, নিশ্চিত হয়ে নিন যে প্রস্থ / উচ্চতা মাপ_পরিবারে সেট করা নেই।
কেভিন ওয়ার্থ

এবং এখানে আমি এওএসপি'র বিশেষ অভ্যন্তরীণ চিত্রমূর্তি চুরি করছি যা অনুমিতভাবে এই সীমাগুলির প্রতি শ্রদ্ধা জানাতে তৈরি হয়েছিল।
দ্য ওয়ান্ডারার

4

adjustViewBoundsআপনি যদি ব্যবহার করেন তবে সেটিংস সাহায্য করবে না match_parent, তবে কার্যকরীটি সাধারণ কাস্টম ImageView:


public class LimitedWidthImageView extends ImageView {
    public LimitedWidthImageView(Context context) {
        super(context);
    }

    public LimitedWidthImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public LimitedWidthImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int specWidth = MeasureSpec.getSize(widthMeasureSpec);
        int maxWidth = getMaxWidth();
        if (specWidth > maxWidth) {
            widthMeasureSpec = MeasureSpec.makeMeasureSpec(maxWidth,
                    MeasureSpec.getMode(widthMeasureSpec));
        }
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
}

1
সামঞ্জস্য ভিউবাউন্ডগুলি আমার পক্ষে একটি ম্যাচ_পরিবারের প্রস্থের সাথে দুর্দান্ত কাজ করছে বলে মনে হচ্ছে।
Cory পেটোস্কি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.