UI界面自定制

更新时间:2017/01/22 访问次数:42059

1 样式调整

在res/values/ali_sdk_openaccount_styles.xml里定义了可以直接覆盖的所有样式,开发者可以继承对应的style然后将AndroidManifest.xml中activity的配置改成自己的样式。

1.1 属性列表

属性名 解释
ali_sdk_openaccount_attrs_title_bar_bg 标题栏背景
ali_sdk_openaccount_attrs_title_bar_text_color 标题栏文字颜色
ali_sdk_openaccount_attrs_title_bar_back_text_color 标题栏回退按钮颜色
ali_sdk_openaccount_attrs_title_bar_visibility 标题栏是否可见visible或invisible
ali_sdk_openaccount_attrs_main_bg activity主背景颜色
ali_sdk_openaccount_attrs_next_step_bg 下一步按钮背景
ali_sdk_openaccount_attrs_input_box_clear_btn_color 清除按钮颜色
ali_sdk_openaccount_attrs_send_sms_code_color 发送短信验证码按钮上的文字颜色
ali_sdk_openaccount_attrs_login_register_text_color 登录Activity上注册文字颜色
ali_sdk_openaccount_attrs_login_reset_password_text_color 登录Activity上忘记密码文字颜色
ali_sdk_openaccount_attrs_login_other_plateform_login_text_color 登录Activity上其他账号登录文字颜色
ali_sdk_openaccount_attrs_title_bar_title 标题栏标题文字
ali_sdk_openaccount_attrs_login_oauth_plateform 第三方登录平台选择taobao|qq|weibo|weixin
ali_sdk_openaccount_attrs_login_oauth_text_text_color 第三方登录按钮下边的文字颜色 
ali_sdk_openaccount_attrs_login_oauth_text_color 第三方登录按钮上的文字颜色 
ali_sdk_openaccount_attrs_login_oauth_1_bg 第三方登录淘宝的背景
ali_sdk_openaccount_attrs_login_oauth_2_bg 第三方登录微信的背景
ali_sdk_openaccount_attrs_login_oauth_3_bg 第三方登录微博的背景
ali_sdk_openaccount_attrs_login_oauth_4_bg 第三方登录qq的背景
ali_sdk_openaccount_attrs_fill_password_text_color 输入密码框下边的解释文案的文字颜色 

1.2 例子

1 将SDK的AndroidManifest.xml中的activity配置剪切到ISV APP的工程中的AndroidManifest.xml中

2 在ISV APP工程中的styles.xml中配置一个新的style如:

<style name="NewLogin" parent="@style/Login">

// 修改需要修改的item        

<item name="ali_sdk_openaccount_attrs_main_bg">#817936</item>

    </style>

3 将ISV APP的工程中的AndroidManifest中的activity的主题配置修改

        <activity android:configChanges="orientation|screenSize|keyboardHidden" android:name="com.alibaba.sdk.android.openaccount.ui.ui.LoginActivity" android:theme="@style/NewLogin"/>

2 布局调整 

可以复制一份布局文件,不要更改已有的控件id,可以新增控件,然后通过LayoutMapping类让控件或Activity加载自己定义的layout布局

com.alibaba.sdk.android.openaccount.ui.LayoutMapping.put(控件(或activity).class,R.layout.xxx);

当然也可以通过改变加载布局的方式来调整对应控件的属性值

可以进行布局调整的类列表

类路径 layout文件 解释
com.alibaba.sdk.android.openaccount.ui.CheckCodeInputBox ali_sdk_openaccount_check_code_input_box.xml  验证码输入框
com.alibaba.sdk.android.openaccount.ui.widget.InputBoxWithClear ali_sdk_openaccount_input_box.xml  带有清除按钮的输入框
com.alibaba.sdk.android.openaccount.ui.widget.InputBoxWithHistory ali_sdk_openaccount_input_box_with_history.xml  登录页上带有下拉历史选择框的输入框
com.alibaba.sdk.android.openaccount.ui.widget.NextStepButton ali_sdk_openaccount_next_step.xml  下一步按钮
com.alibaba.sdk.android.openaccount.ui.widget.OauthWidget ali_sdk_openaccount_oauth.xml  登录页的第三方登录
com.alibaba.sdk.android.openaccount.ui.widget.PasswordInputBox ali_sdk_openaccount_password_input_box.xml  密码输入框
com.alibaba.sdk.android.openaccount.ui.widget.SmsCodeInputBox ali_sdk_openaccount_sms_code_input_box.xml  短信验证码输入框
com.alibaba.sdk.android.openaccount.ui.widget.TitleBar ali_sdk_openaccount_title_bar.xml  标题栏
com.alibaba.sdk.android.openaccount.ui.ui.LoginActivity ali_sdk_openaccount_login.xml  账号密码登录
com.alibaba.sdk.android.openaccount.ui.ui.NoPasswordLoginActivity ali_sdk_openaccount_no_password_login.xml  验证码登录
com.alibaba.sdk.android.openaccount.ui.ui.RegisterActivity ali_sdk_openaccount_register.xml  注册
com.alibaba.sdk.android.openaccount.ui.ui.ResetPasswordActivity ali_sdk_openaccount_reset_password.xml  找密
com.alibaba.sdk.android.openaccount.ui.ui.RegisterFillPasswordActivity ali_sdk_openaccount_register_fill_password.xml  注册填写密码
com.alibaba.sdk.android.openaccount.ui.ui.RestPasswordFillPasswordActivity ali_sdk_openaccount_reset_password_fill_password.xml  找密填写密码

 

3 新增自定义控件

如果需要增加Button等控件并注册事件以及拿到Activity的实例,可以通过自定义一个layout实现,具体过程如下:

1 继承Layout类

public class MyButton extends LinearLayout {
    private Button button;

    public MyButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        LayoutInflater.from(context).inflate(R.layout.my_button, this, true);
        button = (Button) findViewById(R.id.button);
        Activity activity = (Activity) context;
    }
}

对应的layout xml为my_button.xml

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button"
        android:textColor="#61666F"
        android:textSize="18sp" />
</merge>

2 修改layout.xml

复制ali_sdk_openaccount_login.xml为ali_sdk_openaccount_login_bak.xml

需要加入的地方配置此控件,如在ali_sdk_openaccount_login_bak.xml中加入

<com.alibaba.sdk.android.demo.MyButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

 

 在打开登录界面前调用LayoutMapping.put(LoginActivity.class, R.layout.ali_sdk_openaccount_login_bak);

3 效果

4 继承Activity

如果开发者想继承对应的Activity,可以通过接口指定要启动的activty的class

void showLogin(final Context context, Class<?> targetActivityClass, final LoginCallback loginCallback)
注意配置自定义activity的时候需要配置style,如:
android:theme="@style/Login"        
登录、注册、找密等都可以使用此方式

 

 群号:1364864169

FAQ

关于此文档暂时还没有FAQ
返回
顶部