There is an activit with a background image. When you first view this activation - the image is displayed in good quality. But if I minimize the application and start it again, or open another activation (with a different image) and return again to this activation, the image loses quality and artifacts and noise appear (though not very noticeable). What is the reason?
Activation code:
public class StarsActivity extends AppCompatActivity { ViewPager viewPager; TabLayout tabLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(new StarsActivity.CustomAdapter(getSupportFragmentManager(),getApplicationContext())); tabLayout = (TabLayout) findViewById(R.id.tabLayout); tabLayout.setSelectedTabIndicatorHeight(0); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabReselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } }); //background ImageView background = (ImageView) findViewById(R.id.background); Glide.with(this) .load(R.drawable.stars_bg) .asBitmap() .format(DecodeFormat.PREFER_ARGB_8888) .centerCrop() .into(background); //back button ImageView back_button = (ImageView) findViewById(R.id.btnBack); Glide.with(this) .load(R.drawable.arrow_back) .asBitmap() .format(DecodeFormat.PREFER_ARGB_8888) .into(back_button); //home button ImageView home_button = (ImageView) findViewById(R.id.btnBackToHome); Glide.with(this) .load(R.drawable.home_button) .asBitmap() .format(DecodeFormat.PREFER_ARGB_8888) .into(home_button); final Button button2 = (Button) findViewById(R.id.button2); final Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { viewPager.setCurrentItem(0, true); button.setVisibility(View.INVISIBLE); button2.setVisibility(View.VISIBLE); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { viewPager.setCurrentItem(1, true); button2.setVisibility(View.INVISIBLE); button.setVisibility(View.VISIBLE); } }); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { if(position==0){ button.setVisibility(View.INVISIBLE); button2.setVisibility(View.VISIBLE); } else if(position==1){ button2.setVisibility(View.INVISIBLE); button.setVisibility(View.VISIBLE);} } @Override public void onPageScrollStateChanged(int state) { } }); button.setVisibility(View.INVISIBLE); } @Override public void onBackPressed(){ Intent intent = new Intent(Activity.this, MainActivity.class); startActivity(intent); this.finish(); } public void onBackClick(View view) { Intent intent = new Intent(Activity.this, MainActivity.class); startActivity(intent); this.finish(); } public void onHomeClick(View view) { Intent intent = new Intent(Activity.this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } private class CustomAdapter extends FragmentPagerAdapter { private String fragments [] = {"•","•"}; public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) { super(supportFragmentManager); } @Override public Fragment getItem(int position) { switch (position){ case 0: return new Fragment1(); case 1: return new Fragment2(); default: return null; } } @Override public int getCount() { return fragments.length; } @Override public CharSequence getPageTitle(int position) { return fragments[position]; } } }
PS To download images using the Glide library.
PSS On the emulator I do not observe this. Only on real devices.
Glide.with(this) .load(R.drawable.stars_bg) .asBitmap() .format(DecodeFormat.PREFER_ARGB_8888) .centerCrop() .into(background);- Lev Naumenko