我目前正在编写自定义ImageView。我实际上将这个imageview转换成了一个多状态按钮。
在我的情况下,按钮有三种状态,回答是,回答为否和未回复。 我严格地不想使用radiogroup /按钮。
我有imageview的基本设置。它具有onclick功能,可根据状态正确更改图像。现在只是一个带十字的复选框,一个空的复选框和一个带勾号的复选框。
我想要的是,当状态发生变化(点击图像)时,我想要文本,它应该始终在周围,而不是在图像视图的顶部。要改变它的价值。我希望能够调用类似于customCompInstance.getText()的方法; customCompInstance.getText();
我的想法是,自定义imageview类应该有一个TextView成员,但我无论如何将它放在左边,水平对齐到imageview。
不能在xml中使用两个不同的元素。
添加textview并将其放在imageview右侧是正确的解决方案,如果没有,你有什么建议,如果是的话,请给我一些如何实现这一目标的提示。
我班级的简化版本:
public class AnswerImageView extends ImageView {
private AnswerState mSelectionState;
/**
* @param context
*/
public AnswerImageView(Context context)
{
super(context);
// TODO Auto-generated constructor stub
setImageResource(R.drawable.answer_none);
setTag(R.drawable.answer_none);
mSelectionState = AnswerState.ANSWER_NONE;
}
/**
* @param context
* @param attrs
*/
public AnswerImageView(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
setImageResource(R.drawable.answer_none);
setTag(R.drawable.answer_none);
mSelectionState = AnswerState.ANSWER_NONE;
}
/**
* @param context
* @param attrs
* @param defStyle
*/
public AnswerImageView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
setImageResource(R.drawable.answer_none);
setTag(R.drawable.answer_none);
mSelectionState = AnswerState.ANSWER_NONE;
}
public AnswerState getSelectionState() {
return mSelectionState;
}
public void setSelectionState(AnswerState selectionState) {
this.mSelectionState = selectionState;
}
}
我有一个对onclicks做出反应的方法,一切正常。 我纯粹要求在此组件中添加textview。基本上将两个组件合并为一个。