Android输入法之如何自定义每个key的属性

本文档介绍如何在Android中自定义输入法的每个key属性,通过获取ApplicationContext的Resources并使用getXml方法加载XML文件,然后利用AttributeSet解析XML文档,实现对输入法key的个性化配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个主要的类 : TypedValue & Resources

TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),
                    R.styleable.Keyboard);

/*parser 可以通过 getApplicationContext().getResources().getXml(R.xml.file); 来获得的对应的xml文档解析器

AttributeSet attrs = Xml.asAttributeSet(xml);*/

Resources askResources= askContext.getApplicationContext().getResources();



a.getValue(
          R.styleable.Keyboard_Key_android_codes, codesValue);
a.getText(
          R.styleable.Keyboard_Key_android_popupCharacters);
a.getResourceId(
          R.styleable.Keyboard_Key_android_popupKeyboard, 0);
a.getBoolean(
          R.styleable.Keyboard_Key_android_isRepeatable, false);

a.getDrawable(R.styleable.Keyboard_Key_android_keyIcon);
            if (icon != null) {            
                icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
            }
res.getDrawable(R.drawable.e00e)


有关key在xml定义的所有属性,都在Keyboard.java中的key 抽象类中有对应声明;
   在API,Values/attrs.xml中;有所有的resources 对应的名称,以及各自属性的声明;通过一次编译后,系统将自动把对应的属性在R.java中生成序列号;
   利用TyprArray可以获取每个key各自对应的不同属性;
(: 每页只有当前页的按钮背景不同,当获取key background时,变更改了原先统一的key background; 而当要给每个Key设定新的属性Icon时, 同样在attrs.xml中先声明,再逐个获取 );


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值