0
A
回答
1
LinearLayout menuLayout= (LinearLayout) activity.getLayoutInflater().inflate(menuId, null);
int layoutCount = menuLayout.getChildCount();
for (int i = 0; i < layoutCount; i++)
{
View itemView = menuLayout.getChildAt(i);
if (itemView instanceof LinearLayout)
{
LinearLayout itemLayout = (LinearLayout) itemView;
int count = ((LinearLayout) itemView).getChildCount();
for (int j = 0; j < count; j++)
{
View view = itemLayout.getChildAt(j);
if (view instanceof ImageView)
((ImageView) view).setImageResource(R.drawable.newImage);
}
}
}
您可以使用findViewById查找項目。
0
You can change the background by using
LinearLayout ll=(LinearLayout) findViewById(R.id.linear);
ll.setBackground(...);
ImageView i=popUpwindow.findViewById(R.id.image1);
i.setImageResource(id here);
or
i.setImageDrawable(Drawable here);
+0
ActivityMain.A.displayPopupWindow(ActivityAllApps.this,視圖,R.layout.popup_menu_all_apps_app) ; 需要以編程方式將綠色圖標替換爲其他圖標,這些圖標也將位於文件夾Drawable中 – GAAAN
0
首先初始化要改變ImageView的。就像這樣:
ImageView imageView = (ImageView) findViewById(R.id.yourImageViewId);
然後
imageView.setImageResource(R.drawable.yournewIconId);
同樣可以爲背景變化做到這一點。
0
您需要申請一個主題風格如下:
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@color/colorPrimary</item>
<item name="android:background">@color/colorPrimary</item>
<item name="android:textColorPrimary">@android:color/darker_gray</item>
</style>
下面的代碼工作對我來說:對於彈出式菜單
public void showPopUpMenu(final Context context, View view) {
Context wrapper = new ContextThemeWrapper(context, R.style.PopupMenu);
PopupMenu popup = new PopupMenu(wrapper, view, Gravity.END);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.menu_options, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_share:
shareWithFriends();
break;
default:
break;
}
return true;
}
});
try {
Field[] fields = popup.getClass().getDeclaredFields();
for (Field field : fields) {
if ("mPopup".equals(field.getName())) {
field.setAccessible(true);
Object menuPopupHelper = field.get(popup);
Class<?> classPopupHelper = Class.forName(menuPopupHelper
.getClass().getName());
Method setForceIcons = classPopupHelper.getMethod(
"setForceShowIcon", boolean.class);
setForceIcons.invoke(menuPopupHelper, true);
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
popup.show();
}
0
XML佈局在菜單通常創建文件夾
您必須在調用popup.show()之前對其進行更改()
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.name_of_xml_layout, popup.getMenu());
popup.getMenu().findItem(R.id.editmenubtn).setIcon(R.drawable.newicon); //this line will change the icon of popup menu
popup.show();
相關問題
- 1. 如何以編程方式更改NavigationView標題背景?
- 2. 如何以編程方式更改css背景圖片?
- 3. Avalonedit如何以編程方式更改文本的背景
- 4. 如何以編程方式更改列表項目的背景?
- 5. 如何以編程方式更改按鈕的背景顏色
- 6. 如何以編程方式更改對話框背景顏色?
- 7. Silverlight/WP7:以編程方式更改按鈕背景圖像
- 8. UIButton背景圖像以編程方式更改
- 9. UIBarButtonItem - 以編程方式更改背景圖像
- 10. 以編程方式更改OnCreate內的活動背景圖像
- 11. 以編程方式在Fresco中更改SimpleDraweeView的背景圖像
- 12. 以編程方式更改UIButton上的背景圖像
- 13. 以編程方式更改登錄屏幕的背景圖像?
- 14. 以編程方式更改列表視圖項目背景
- 15. 以編程方式更改背景顏色的視圖
- 16. 通過編程方式更改背景
- 17. 以編程方式更改ActionBar圖標
- 18. 以編程方式更改MediaController圖標
- 19. 以編程方式更改所需的背景模式
- 20. 如何以編程方式更改靜態單元格中的背景圖片?
- 21. 如何以編程方式更改窗體c上的背景圖像#
- 22. 如何以編程方式更改繪圖資源的背景顏色
- 23. Visual C#:Metro應用程序更改背景(以編程方式)
- 24. 如何以C++編程方式更改光標圖標
- 25. oracle窗體以編程方式更改窗口背景顏色?
- 26. 以編程方式更改列表框項目背景顏色
- 27. 以編程方式更改橢圓形按鈕背景
- 28. 以編程方式更改桌面背景
- 29. 以編程方式更改翻轉開關背景顏色
- 30. Swift:以編程方式更改窗口的背景顏色
發表您的XML代碼 – vm345
xml文件https://drive.google.com/file/d/0Bxhi0uFKK3upNWhJOV9oX2sxUEk/view?usp=sharing – GAAAN