我正在尝试将图像添加到ListView,使其看起来更像一个按钮。我想图像要小一些,可能是当前的60%。并且图像在列中右侧很好地升起。这是我目前拥有的屏幕:
这是我的列表视图xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
android:layout_width="match_parent"
android:drawableRight="@drawable/arrow_button"
>
</TextView>
知道我做错了什么吗?
包含此TextView的ListView定义如下:
一个注意事项,我创建和使用我的列表的方式是使用ListAdapter,使用如下代码:
Question q = new Question ();
q.setQuestion( "This is a test question and there are more than one" );
questions.add(q);
adapter = new ArrayAdapter<Question>( this, R.layout.questions_list, questions);
setListAdapter(adapter);
谢谢!
答案 0 :(得分:4)
稀释。你正在使用复合drawable做正确的事情。不确定是否有更好的方法可能在复合可绘制扩展中有间距,但我知道这将起作用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="10dp"
android:textSize="16sp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true" />
<View
android:layout_height="64dip"
android:layout_width="64dip"
android:background="@drawable/arrow_button"
android:layout_centerVertical="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
基本上只是指出使用右对齐和左对齐。您可能希望为它们添加一些边距或填充。还要确保将元素垂直居中。
答案 1 :(得分:1)
根据Frank Sposaro给出的评论和建议,您将能够正确定位您的观点。
对于您的下一个问题,我建议您制作类似于此的适配器:
private class CustomAdapter extends ArrayAdapter<Question> {
private LayoutInflater mInflater;
public CustomAdapter(Context context) {
super(context, R.layout.row);
mInflater = LayoutInflater.from(context);
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.mTextView);
holder.image = (ImageView) convertView.findViewById(R.id.mImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//Fill the views in your row
holder.text.setText(questions.get(position).getText());
holder.image.setBackground... (questions.get(position).getImage()));
return convertView;
}
}
static class ViewHolder {
TextView text;
ImageView image;
}
在你的onCreate:
ListView mListView = (ListView) findViewById(R.id.mListView);
mListView.setAdapter(new CustomAdapter(getApplicationContext(), questions));
可以找到带有适配器的ListView的另一个示例here