[英]Android Overlapping Image Views
我想創建這種視圖,其中十字架應該是單獨的圖像視圖,因為我希望它是可點擊的。 我怎樣才能做到這一點?
這將是偉大的如果我可以編程創建此視圖,因為我是一個動態的圖像列表,我以編程方式創建圖像視圖。 我現在需要的只是添加重疊的imageview 。
提前致謝
使用FrameLayout
,您可以將視圖疊加在一起
例如:
FrameLayout frame = (FrameLayout) findViewById(R.id.frame);
ImageView image = new ImageView(this);
iv.setImageResource(R.drawable.image);
ImageView cross = new ImageView(this);
i.setImageResource(R.drawable.cross);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutParams.gravity = Gravity.RIGHT | Gravity.TOP;
i.setLayoutParams(layoutParams);
frame.addView(image);
frame.addView(cross);
以編程方式創建RelativeLayout
,其中包含兩個ImageViews
。 將圖像放在第一個圖像中,將第二個圖像放在第二個圖像中。 相應地調整邊距以將其放在右上角。
首先創建一個全新的布局,用作占位符,例如“partial_layout.xml”。 然后在您的代碼中首先使用以下內容創建LayoutInflater:
LayoutInflater mInflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
然后嘗試使用以下內容獲取此布局的新副本:
View convertView = mInflater.inflate(R.layout.partial_layout, null);
現在將您當前的數據放到此視圖中,最后將此視圖添加到您的內容視圖中。
如果您創建了一個視圖列表,您仍然可以通過僅在需要時對其進行充氣來使用XML - 只需觀看演講“listView的世界”即可正確完成。 使用ListView比創建與要顯示的項目數量一樣多的視圖更有效(例如,如果要顯示100個圖像,則只需要創建屏幕上的那些圖像)。
無論如何,xml可以包含FrameLayout或RelativeLayout作為根視圖,你只需根據你想要的正確位置放置2個imageViews。 您可以使用UI設計器,或通過為較大的圖像添加margin-top來編輯XML本身。 另外,請確保在較小的圖像之前寫入較大的圖像。
至於點擊,你可以在小imaveView上使用setOnClickListener。
順便說一句,如果它只是圖像,你應該使用GridView而不是ListView。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.