我正在创建一个工具提示,我使用this库创建一个。它描述了attr
以后更改字体颜色,这是要添加到attr.xml
个文件中的代码
declare-styleable name="TooltipLayout">
<attr name="ttlm_padding" format="dimension" />
<attr name="ttlm_strokeColor" format="color" />
<attr name="ttlm_backgroundColor" format="color" />
<attr name="ttlm_strokeWeight" format="dimension" />
<attr name="ttlm_cornerRadius" format="dimension" />
<attr name="ttlm_arrowRatio" format="float" />
<attr name="android:textAppearance" />
<attr name="ttlm_overlayStyle" format="reference" />
<attr name="ttlm_elevation" format="dimension" />
<!-- font file path inside your assets folder -->
<attr name="ttlm_font" format="string" />
<!-- textview text gravity -->
<attr name="android:gravity" />
</declare-styleable>
这可能很简单,但我无法理解如何在attr
文件中给出颜色和指定值。
请指导我。
修改
代码
Tooltip.make(context,
new Tooltip.Builder(101)
.anchor(editText, Tooltip.Gravity.BOTTOM)
.closePolicy(new Tooltip.ClosePolicy()
.insidePolicy(true, false)
.outsidePolicy(true, false), 3000)
.text("AA")
.maxWidth(800)
.withArrow(true)
.withOverlay(true)
.floatingAnimation(Tooltip.AnimationBuilder.DEFAULT).fitToScreen(true)
.withStyleId(R.attr.ttlm_backgroundColor,R.color.black_54)
.withStyleId(R.color.black)
.build()
).show();
答案 0 :(得分:1)
您正在使用declare-stylable。顾名思义,用于定义what
,而不是how
。
这使您可以在布局中设置样式。
<com.mypackage.MyCustomView
android:layout_width=".."
...
app:ttlm_cornerRatius="4dp" />
然后,您应该在customView中获取样式属性并将其应用于视图。例如
public ToolTipLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs); //override the constructors and make an init method that passes the `AttributeSet`
}
private void init(Context context, AttributeSet attrs) {
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable. TooltipLayout);
int buttonType = a.getInt(R.styleable.TooltipLayout_ ttlm_cornerRadius, 0);
a.recycle();
}
希望这会有所帮助:)
PS。从我脑海里打出这个,可能会有一些错别字。