我正在尝试创建一个类似于脉冲 android 应用程序的自定义 UI。据我了解,首先我必须先创建一个自定义按钮,如下图所示。
我的按钮上有一个图像和文本覆盖。我知道这是一个基本问题,但我正面临这个问题,因为我是 android 开发的初学者。请帮助我了解如何处理这个问题。
我正在尝试创建一个类似于脉冲 android 应用程序的自定义 UI。据我了解,首先我必须先创建一个自定义按钮,如下图所示。
我的按钮上有一个图像和文本覆盖。我知道这是一个基本问题,但我正面临这个问题,因为我是 android 开发的初学者。请帮助我了解如何处理这个问题。
您可以用黑色文本和一些透明度组成一个从 anImageView
和 aTextView
到底部对齐的简单布局。两个视图都应该放在 aRelativeLayout.
然后你设置一个点击监听器RelativeLayout
并在点击时采取适当的行动。
前任:
<RelativeLayout
android:id="@+id/item"
android:layout_width="150dp"
android:layout_height="150dp" >
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/my_test_image" />
<TextView
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="#4000"
android:text="Giorgio Armany Galaxy S"
android:textColor="#FFF" />
</RelativeLayout>
然后在你的程序中:
RelativeLayout item=(RelativeLayout)findViewById(R.id.item);
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// take action
}
});
这是一种情况。另一种情况是,如果您愿意,可以扩展Button
和组合您的自定义 UI 组件,这将涉及更多编码,但您将拥有一个独特的组件。
如果它回答了您的问题,请接受答案。
现在关于与网格集成的部分:将上面示例的 XML 内容(RelativeLayout + ImageView + TextView)保存到一个新的 XML 文件中,让它成为layout/grid_item.xml
. 为and
添加一个唯一id
的ImageView
TextView
然后在getView()
你的适配器的方法中膨胀该布局并通过 id 找到 ImageView 和 TextView,并设置适当的内容。
请注意,这不是完整的源代码,但基本架构应如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
....
convertView = mInflater.inflate(R.layout.grid_item, null);
....
ImageView myImage=(ImageView)convertView.findViewById(R.id.my_image);
TextView myTextView=(TextView)convertView.findViewById(R.id.my_textview);
myImage.setImageResource(...);
myTextView.setText(...);
...
return convertView
}