我的 android 应用程序中有一个 GalleryView 小部件,我想更改小部件中中心项目的背景样式/颜色,使其与众不同。更好的是,如果我能让这个中心项目比其他项目更大。
有任何想法吗?
我的 android 应用程序中有一个 GalleryView 小部件,我想更改小部件中中心项目的背景样式/颜色,使其与众不同。更好的是,如果我能让这个中心项目比其他项目更大。
有任何想法吗?
您可以在特定布局中设置背景颜色(您的选择),例如您有 5 个编辑框 2 上方 2 下方和 1 个在中心您想要更改背景颜色的人您可以执行以下操作
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:background="#000000"
android:orientation="vertical"
android:padding="5px" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/id1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/id2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#435232"
android:orientation="horizontal" >
<EditText
android:id="@+id/id3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:digits="0123456789"
android:maxLength="6" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/id4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/id5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:digits="0123456789"
android:maxLength="11" />
</LinearLayout>
</LinearLayout>
如您所见,我以同样的方式更改了第三个编辑文本的背景颜色,您也可以这样做
创建一个selector
并将其设置为画廊项目的背景。在选择器中,为选定状态设置 BackgroundColor 和其他功能。
选择器.xml
<item android:state_focused="true"
android:color="#000000" /> <!-- focused -->
</selector>
画廊项目.xml:
<LinearLayout backgrond=selector.xml >
--
--
</LinearLayout >
如果您看到 Android SDK 源代码,您应该会找到以下目录和文件:
/opt/android-sdk-linux/platforms/android-10/data/res/drawable-hdpi/gallery_*
/opt/android-sdk-linux/platforms/android-10/data/res/drawable/gallery_item_background.xml
您可以将这些文件复制到您的项目并创建一个适配器,如下所示:
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
public class ImageAdapter extends ArrayAdapter<ImageItem> {
private Context context;
private final ImageDownloader imageDownloader = new ImageDownloader();
public ImageAdapter(Context context, int layoutItem,List<ImageItem> objects) {
super(context, layoutItem, objects);
this.context=context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(context);
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setBackgroundResource(R.drawable.gallery_item_background);
} else {
imageView = (ImageView) convertView;
}
imageDownloader.download(getItem(position).thumbnail, imageView); // or similar function to set imageView.
return imageView;
}
}
然后在资源目录中编辑 xml 和 png 文件,如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When the window does not have focus. -->
<item android:drawable="@drawable/gallery_selected_default"
android:state_selected="true"
android:state_window_focused="false"/>
<item android:drawable="@drawable/gallery_unselected_default"
android:state_selected="false"
android:state_window_focused="false"/>
<!-- When the window does have focus. -->
<item android:drawable="@drawable/gallery_selected_pressed"
android:state_selected="true"
android:state_pressed="true"/>
<item android:drawable="@drawable/gallery_selected_focused"
android:state_selected="true"
android:state_focused="true"/>
<item android:drawable="@drawable/gallery_selected_default"
android:state_selected="true"/>
<item android:drawable="@drawable/gallery_unselected_pressed"
android:state_selected="false"
android:state_pressed="true"/>
<item android:drawable="@drawable/gallery_unselected_default"/>
</selector>