我正在開發與GridView
的Android應用程序。 gridView包含按鈕。我已經使用按鈕適配器定製了我的GridView。Gridview選定的項目保持突出顯示,並確認圖像
問題是:我需要保持選中的項目用邊框突出顯示。現在選擇正在釋放印刷機後消失。
我不是Android專家。因此,按下按鈕後的下一步是顯示一個雲形狀圖像,其中顯示「確認」。
This是我確切需要的。
我正在開發與GridView
的Android應用程序。 gridView包含按鈕。我已經使用按鈕適配器定製了我的GridView。Gridview選定的項目保持突出顯示,並確認圖像
問題是:我需要保持選中的項目用邊框突出顯示。現在選擇正在釋放印刷機後消失。
我不是Android專家。因此,按下按鈕後的下一步是顯示一個雲形狀圖像,其中顯示「確認」。
This是我確切需要的。
在您的res
文件夾中創建一個名爲drawable
的文件夾。現在在drawable
文件夾中創建一個xml
文件,將其命名爲任何內容(以小型文件形式)並將此代碼放入文件中。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true"><shape>
<!-- <solid android:color="#CCCCCC"/> -->
<gradient android:endColor="#67A7F8" android:startColor="#1067C8" />
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="8dp" />
</shape></item>
<item android:state_focused="false" android:state_pressed="true"><shape>
<!-- <solid android:color="#07B107"/> -->
<gradient android:endColor="#67A7F8" android:startColor="#1067C8" />
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="8dp" />
</shape></item>
<item android:state_focused="true" android:state_pressed="false"><shape>
<solid android:color="#FFFFFF" />
<stroke android:width="1dp" android:color="#0055FF" />
<corners android:radius="8dp" />
</shape></item>
<item android:state_focused="false" android:state_pressed="false"><shape>
<gradient android:angle="270" android:centerColor="#FFFFFF" android:endColor="#FFFFFF" android:startColor="#F2F2F2" />
<stroke android:width="0.8dp" android:color="#000000" />
<corners android:radius="12dp" />
</shape></item>
<item android:state_enabled="true"><shape>
<padding android:bottom="4dp" android:left="5dp" android:right="4dp" android:top="4dp" />
</shape></item>
</selector>
現在在你的GridView
代碼中設置android:drawSelectorOnTop="true"
和android:listSelector
屬性,然後選擇你剛纔創建的drawable
。它會解決你的問題。
網格視圖代碼看起來是這樣的:
<GridView
android:id="@+id/lstFrames_available_frames"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:animateLayoutChanges="true"
android:columnWidth="100dp"
android:gravity="center"
android:horizontalSpacing="3dp"
android:listSelector="@drawable/round_buttons"
android:numColumns="auto_fit"
android:drawSelectorOnTop="true"
android:stretchMode="columnWidth"
android:verticalSpacing="3dp" >
</GridView>
UPDATE 您可以使用這樣的事情在你的自定義適配器來實現你想要的:
public class AlbumCoverAdapter extends BaseAdapter {
private Activity activity;
private static LayoutInflater inflater = null;
private int mSelected;
public AlbumCoverAdapter(Activity a) {
activity = a;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return 50;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView txtCaption;
public ImageView imgImage;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.grid_adapter, null);
holder = new ViewHolder();
holder.txtCaption = (TextView)vi.findViewById(R.id.txtGridText);
holder.txtCaption.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
mSelected = (Integer)arg0.getTag();
notifyDataSetChanged();
}
});
vi.setTag(holder);
} else
holder = (ViewHolder)vi.getTag();
try {
holder.txtCaption.setTag(position);
if (position == mSelected) {
holder.txtCaption.setBackgroundResource(R.drawable.round_corner_background);
} else {
holder.txtCaption.setBackgroundDrawable(null);
}
holder.txtCaption.setText("Item: " + position);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return vi;
}
}
我曾嘗試setSelection(true)。我沒有這個概念,這就是爲什麼我不能做任何事情。請給我建議一個方法,我有可選文件夾中的選擇器 – devian 2013-04-29 10:27:45
github上的greenDroid有這樣的東西。你應該試試這個。 https://github.com/cyrilmottier/GreenDroid。首先看到圖像,然後嘗試執行此 – 2013-04-29 10:53:01
也去彈出窗口。 http://androidresearch.wordpress.com/2012/05/06/how-to-create-popups-in-android/ – 2013-04-29 11:05:30