我正在向Gridview中的屏幕顯示圖像,目前正在使用ImageAdapter將下載的圖像加載到Gridview中。如果點擊,我在所選圖像頂部繪製另一個圖像來表示選擇,問題是我必須通過RelaytiveLayout將它們添加爲孩子,因此當我滾動圖像時,請保留它們的創建位置,並且不要跟隨與滾動。所以我然後嘗試創建一個自定義視圖與2個圖像重疊,設置一個隱藏和另一個由適配器填充。選擇時,計劃是取消隱藏重疊圖像。從適配器加載時,我的自定義視圖(實際上必須擴展ViewGroup以包含兩個圖像視圖,因爲視圖無法添加子視圖)將加載可選擇的框架,但在任何圖像顯示中都是完全透明的。我知道這是可選擇的,因爲當我觸摸屏幕時,我設置的尺寸會出現一個藍色框。爲了顯示自定義視圖,我在publc getView()函數中加載了它。我是否以這種錯誤的方式去做?我已經嘗試了一下,看看是否有其他人做過這樣的事情,但我能找到的所有教程都是在RelativeLayout上繪製重疊圖像或將圖像加載到GridView中,但不是兩者兼而有之。我很抱歉,我是Android新手。如何在gridview中顯示2個重疊視圖?
0
A
回答
0
如果我沒有錯,當你點擊時你所需要的是在gridView
中選擇一個視圖的狀態。我不認爲在現有的基礎上再繪製一張圖片是必要的。您可以像使用自定義適配器一樣使用viewHolder模式更改現有的視圖背景。看看下面的鏈接。你可能會想到如何去做。
0
列表視圖不保留焦點(或選擇)的,而在觸摸模式的視覺指示。您只有在使用硬件鍵盤或控件導航UI時纔會看到此內容。
查看谷歌Touch模式Android博客文章瞭解更多詳情。
因此,如果您只使用觸摸模式,您將永遠不會在ListView上看到焦點或選擇。
你正在做什麼可以很好地工作,很少修改。
- 放置ImageView的(孩子)的容器(母象的RelativeLayout等)內。
- 爲父項設置一些填充以使其背景可見。
- 點擊後,更改點擊項目的父項背景(在GridView的OnClickListener的onClick()方法中)。
- 調用notifyDataSetChanged()的適配器(重繪當前可見的項目)
這裏是這樣的示例代碼:
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick (AdapterView<?> parent,
View v, int position, long Id)
{
highlighted = position; //highlighted is a global variable
//container is the root view of the list row layout
LinearLayout container = (LinearLayout)v.findViewById(R.id.container);
container.setBackgroundResource(R.drawable.highlighted_backg);
mGridAdapter.notifyDataSetChanged();
}
});
代碼getView()方法:
public View getView (int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView == null) {
convertView = inflater.inflate(R.layout.row_item, null);
holder = new ViewHolder();
holder.itemName1 = (TextView)convertView.findViewById(R.id.text1);
...
holder.container = (LineaLayout)convertView.findViewById(R.id.container);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if(MainActivity.highlighted == position) {
holder.container.setBackgroundResource(R.drawable.highlighted_backg);
}else {
holder.foodItemCol1.setBackgroundResource(R.drawable.normal_back);
}
return convertView;
}
0
ImageView iv = (ImageView)v.findViewById(R.id.grid_item_image);
iv.setBackgroundResource(imageIDs[4]);
iv.setImageResource(imageIDs[2]);
0
您可以爲選定的imageview設置濾鏡,fo例如imageView.setColorFilter(Color.parse("#77000000"));
(將其添加到ImageView的onClickListener
的onClick
方法中),這會在所選的ImageView
上添加一個半透明灰色圖層,以確定它已被選中。
相關問題
- 1. 在WebView中顯示2個重疊的圖片
- 2. UIcollection視圖顯示堆疊在單個視圖中的圖像
- 3. UINavigation bar顯示2個重疊背景iPhone 4中的圖像
- 4. 如何在1個活動(android)中顯示2個視圖?
- 5. gridview重疊圖像
- 6. 如何在框架中顯示重疊?
- 7. 在GridView中顯示多行視圖
- 8. 在winRT gridview中顯示視頻圖像
- 9. 試圖在列表視圖旁顯示一個GridView。 GridView不顯示
- 10. 如何在2列中顯示帶有文本的圖像GridView
- 11. 如何在1項活動中顯示2個不同視圖?
- 12. 如何重疊視圖?
- 13. 如何在GridView中顯示圖像?
- 14. 如何在GridView中顯示圖像?
- 15. 如何在GridView中顯示圖像
- 16. 我如何在GridView中顯示圖像?
- 17. 在視圖中重疊UIControls
- 18. 使2個圖像重疊
- 19. 如何顯示在GridView中
- 20. 我將如何顯示一個視圖作爲另一個視圖的疊加?
- 21. 如何在樓梯圖中突出顯示重疊區域?
- 22. 如何在Google地圖中顯示重疊標記
- 23. 如何在C#中拖放時無效重疊2個圖像?
- 24. 選擇一個視圖來顯示Android中的2個視圖?
- 25. 在gridview中顯示圖像
- 26. 在GridView中顯示圖像
- 27. 在GridView中顯示圖片
- 28. 隱藏和顯示2與2個按鈕重疊的div,jquery
- 29. 如何使HTML5中的2個視頻重疊?
- 30. 視圖的兩個部分重疊,我們如何顯示內容的重疊部分?
如果您的意思是將圖像設置爲view.SetSelected(true);我確實嘗試過,但沒有圖像修改來表示它已被選中。我現在的解決方法只是調整images.setAlpha() –
不......我的意思是當你點擊時爲該視圖設置不同的背景 – Braj