728x90

 

1. Analyze -> Run Inspection by Name ... -> Deprecated API usage 실행

 

 

 

728x90
728x90

 

 

 

기존 코드

img_season = (BitmapDrawable)context.getResources().getDrawable(getMap().get(str_season));

 

 

수정 코드

img_season = (BitmapDrawable) ContextCompat.getDrawable(context, getMap().get(str_season));



출처: https://yonoo88.tistory.com/872 [yonoo's]

728x90
728x90

FragmentStatePagerAdapter는 API 27에서 deprecated 되었다.

그렇다면 개선하기 위해서는 어떻게 해야할까?

 

android.support.v13.app.FragmentPagerAdapter was deprecated.

따라서 android.support.v4.app.FragmentPagerAdapter를 쓰자.

 

AndroidX로 따지면,

androidx.fragment.app.FragmentStatePagerAdapter 대신에

androidx.fragment.app.FragmentPagerAdapter 를 쓰는 것.

 

 

만약, 기존소스가 아래와 같다면,

private class MainPagerAdapter extends FragmentStatePagerAdapter {

        MainPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment result = new DummyFragment();
             return result;
        }

        @Override
        public int getCount() {
            return 5;
        }

    }

 

Pager class는 아래와 같이 변경하고,

private class MainPagerAdapter extends FragmentPagerAdapter {

        MainPagerAdapter(@NonNull FragmentManager fm, int behavior) {
            super(fm, behavior);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment result = new DummyFragment();
             return result;
        }

        @Override
        public int getCount() {
            return 5;
        }

    }

Constructor 생성시 behvior에 'BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT'를 추가해주면 된다.

 

 

 

 

Reference

https://stackoverflow.com/questions/51131172/fragmentstatepageradapter-is-deprecated-from-api-27

 

728x90
728x90

 

출처: http://blog.devez.net/340

Activity

Activity에서 Display 사이즈를 가져오는 방법이다.

int getDisplayWidth(Activity activity){

    DisplayMetrics metrics = new DisplayMetrics();

    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

    return metrics.widthPixels;    

}

Context를 이용해서 Display 사이즈를 가져오는 방법이다.

 

Context

Display 클래스의 getWidth 메소드는 API Level 13부터 deprecated되었고 getSize 메소드를 사용해야한다.

 

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)

int getDisplayWidth(Context context){

    int width=0;

    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

    Display display = wm.getDefaultDisplay();

    if(Build.VERSION.SDK_INT>12){

        Point size = new Point();

        display.getSize(size);

        width = size.x;

    }

    else{

        width = display.getWidth();  // Deprecated

    }

    return width;      

}

 

 

728x90

+ Recent posts