簡體   English   中英

Android重疊圖像視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM