ইমেজভিউ উত্স পরিবর্তন করা হচ্ছে


257

আমি একজন আছে ImageViewXML নিম্নলিখিত সিনট্যাক্স ব্যবহার করে একটি উৎস ইমেজ সেট দিয়ে:

   <ImageView 
      android:id="@+id/articleImg"
      style="@style/articleImgSmall_2"
      android:src="@drawable/default_m" />

এখন আমার এই চিত্রটি প্রোগ্রামক্রমে পরিবর্তন করতে হবে। আমার যা করা দরকার তা হ'ল পুরানো চিত্রটি মুছুন এবং যদিও একটি নতুন চিত্র যুক্ত করুন। আমি যা করেছি তা হ'ল:

myImgView.setBackgroundResource(R.drawable.monkey);

এটি কাজ করে তবে আমি লক্ষ্য করেছি যে অ্যান্ড্রয়েড পুরানো চিত্রের উপরে নতুন চিত্রটি সজ্জিত করেছে (আমি কীভাবে জানতে পারি যে এটি আলোচনার জন্য প্রাসঙ্গিক নয় :)। নতুন চিত্রটি সেট করার আগে আমার অবশ্যই পুরানোটি থেকে মুক্তি পাওয়া দরকার।

আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


634

ইমেজভিউ উত্স পরিবর্তন করা হচ্ছে:

setBackgroundResource()পদ্ধতি ব্যবহার :

  myImgView.setBackgroundResource(R.drawable.monkey);

আপনি সেই বানরটিকে পটভূমিতে রাখছেন।

আমি setImageResource()পদ্ধতির ব্যবহারের পরামর্শ দিচ্ছি :

  myImgView.setImageResource(R.drawable.monkey);

বা setImageDrawable()পদ্ধতি সহ:

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));

*** নতুন অ্যান্ড্রয়েড এপিআই 22 getResources().getDrawable()দিয়ে এখন অবচয় করা হয়েছে। এটি এখন কীভাবে ব্যবহার করবেন এটি একটি উদাহরণ:

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));

এবং কীভাবে পুরানো এপিআই সংস্করণগুলির জন্য বৈধতা দিন:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
     myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
   } else {
     myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
}

ওহ দুর্দান্ত ... দুর্ভাগ্যক্রমে আমি সবেমাত্র জানতে পেরেছি যে আমার আইএমজিভিউ.সেটআইমেজড্রেইবল (আইএমজি) দিয়ে একটি চিত্র সেটও প্রতিস্থাপন করতে হবে; আপনি যে কোডটি প্রস্তাব করেছিলেন আমার আইএমজিভিউ.সেটআইমেজআরসোর্স (আর .ড্রাব্যাবল.মোনকি); এটি করতে সক্ষম হয় না। আমি বানরটি রেন্ডারিংয়ের আগে কীভাবে আঁকতে পারব? :) অনেক ধন্যবাদ
নুরডাইন

1
getDrawable (int) এখন অবচয় করা হয়েছে এবং getDrawable (int, থিম) এপিআই -21-এ যুক্ত করা হয়েছে। এখন কি করার আছে? আপনি দয়া করে আপনার উত্তর আপডেট করতে পারেন?
মুবেইন

android.widget.ImageViewকলটির জন্য এপিআই স্তর 16 প্রয়োজন (বর্তমান মিনিট 13): # সেটব্যাকগ্রাউন্ড
ইমান

ContextCompatছাড়াই getTheme
অঙ্কনীয় হতে


32
myImgView.setImageResource(R.drawable.monkey);

বর্তমান চিত্র দর্শনটিতে চিত্র স্থাপনের জন্য ব্যবহৃত হয়, তবে যদি এই চিত্রটি মুছতে চান তবে আপনি এই কোডটি ব্যবহার করতে পারেন:

((ImageView) v.findViewById(R.id.ImageView1)).setImageResource(0);

এখন এটি আপনার চিত্রের ভিউ থেকে চিত্রটি মুছে ফেলবে, কারণ এটি সংস্থাগুলির মানকে শূন্যে সেট করেছে।


18

হিসাবে ইমেজভিউয়ের আইডি পান

ImageView imgFp = (ImageView) findViewById(R.id.imgFp);

তারপরে ব্যবহার করুন

imgFp.setImageResource(R.drawable.fpscan);

এক্সএমএল পরিবর্তে উত্স ইমেজ প্রোগ্রামক্রমে সেট করতে।


8

অথবা এটি চেষ্টা করুন। আমার জন্য এটি ভাল কাজ করছে:

imageView.setImageDrawable(ContextCompat.getDrawable(this, image));

5

পরিপূরক ভিজ্যুয়াল উত্তর

ImageView: setImageResource()(মান পদ্ধতি, দিক অনুপাত রাখা হয়)

এখানে চিত্র বর্ণনা লিখুন

View: setBackgroundResource()(চিত্র প্রসারিত)

এখানে চিত্র বর্ণনা লিখুন

উভয়

এখানে চিত্র বর্ণনা লিখুন

আমার পূর্ণ উত্তর এখানে


3

আপনি imageview একটি চিত্র ভিতরে যে সেট করতে চান তাহলে mipmap dirs আপনি ভালো এটা করতে পারেন:

myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)


2

চিত্রদর্শন পরিবর্তন করার জন্য কেবল একটি পদ্ধতি লিখুন

public void setImage(final Context mContext, final ImageView imageView, int picture)
{
    if (mContext != null && imageView != null)
    {
        try
        {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
            {
                imageView.setImageDrawable(mContext.getResources().getDrawable(picture, mContext.getApplicationContext().getTheme()));
            } else
            {
                imageView.setImageDrawable(mContext.getResources().getDrawable(picture));
            }
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.