android 프로젝트에서 내장 테마 전환 실현

2366 단어 android
신인 한 명이 임무를 받고 슈퍼마켓 수신 앱의 내장 피부 전환을 한다.
프로젝트가 비교적 작고 신구 주제도 간단한 그림과 색 값이 바뀌며 전체적인 구조는 변화가 없다.
이런 간단한 공간 점유량이 많지 않은 기능을 실현하려면 피부를 내장하면 된다는 것이 분명하다.
 
다음은 button을 예로 들자.
레이아웃의 레이아웃 파일을 먼저 보십시오.

代码中的背景,和文本颜色,我们引用了自定义属性。

在values目录中,创建attr.xml。



    
    


values 디렉토리에서 styles.xml 파일에서 테마 정의

<br>     <item name="<strong>number_button_bg</strong>">@drawable/<strong>number_button_bg_firstTheme</strong></item><br>     <item name="<strong>num_textColor</strong>">R.color.blue</item><br>
마지막으로Activity의 onCreate () 방법에서 setContentView () 방법을 실행하기 전에 setTheme ()
setTheme(CommonUtils.getThemeId(this));//    ID
setContentView(R.layout.activity_goods);
/**
 * SharedPreferences       ID
 */
public static int  getThemeId(Context c) {
    //  SharedPreferences  
    SharedPreferences sharedPreferences = c.getSharedPreferences("themeId",Context.MODE_PRIVATE);
    //  key       

    int i =  Integer.parseInt(sharedPreferences.getString("theme","0"));
    if (i==0){
        i= R.style.defaultTheme;
    }

    return i;
}

테마를 전환할 때마다 다음 방법을 실행하여 페이지를 다시 불러옵니다
finish();
final Intent intent=getIntent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
overridePendingTransition(0,0);

그다음에 하면 돼요.
 

좋은 웹페이지 즐겨찾기