我在这里指出了这个项目:
https://github.com/siyamed/android-satellite-menu
下载时看起来很棒。但我无法在我的应用程序中使用简单的版本。我已经将.jar添加到我的项目中,它出现在dependancys中。我遇到的问题是xml文件。它是这样提供的:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sat="http://schemas.android.com/apk/res/android.view.ext"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.view.ext.SatelliteMenu
android:id="@+id/menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:layout_margin="8dp"
sat:satelliteDistance="170dp"
sat:mainImage="@drawable/ic_launcher"
sat:totalSpacingDegree="90"
sat:closeOnClick="true"
sat:expandDuration="500"/>
</FrameLayout>
关于SO的另一篇文章说要将包类型更改为您自己的包。所以我把它改成了:
xmlns:sat="http://schemas.android.com/apk/res/my.app"
但我仍然在xml文件中收到此错误:
Multiple annotations found at this line:
- error: No resource identifier found for attribute 'satelliteDistance' in package
'android.view.ext'
- error: No resource identifier found for attribute 'mainImage' in package 'android.view.ext'
- error: No resource identifier found for attribute 'closeOnClick' in package
'android.view.ext'
- error: No resource identifier found for attribute 'expandDuration' in package
'android.view.ext'
- error: No resource identifier found for attribute 'totalSpacingDegree' in package
'android.view.ext'
我也试过改变包装减速度:
<android.view.ext.SatelliteMenu
android:id="@+id/menu"
一个和另一个的组合。但我只是继续得到同样的错误。
我做错了什么?
答案 0 :(得分:2)
更改
xmlns:sat="http://schemas.android.com/apk/res/android.view.ext
到
xmlns:sat="http://schemas.android.com/apk/res-auto"
这应该有效,但对我有用。
别忘了清理你的项目。
答案 1 :(得分:1)
在此处找到类似问题,Implementing Satellite Menu for Android, XML File States No Resource Found
所以你只需要将包名android.view.ext
更改为你自己的包名com.tac.grewords
,清理项目,现在一切都会好的。
答案 2 :(得分:0)
SatelliteMenu menu = (SatelliteMenu) findViewById(R.id.satelliteMenu1);
float distance = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 170, getResources().getDisplayMetrics());
//The distance of items from the center button
menu.setSatelliteDistance((int) distance);
//The duration of expand and collapse operations in milliseconds.
menu.setExpandDuration(300);
menu.setCloseItemsOnClick(true);
//The degree between the first and the last item.
menu.setTotalSpacingDegree(120);
List<SatelliteMenuItem> items = new ArrayList<SatelliteMenuItem>();
items.add(new SatelliteMenuItem(6, R.drawable.ic_action_search));
items.add(new SatelliteMenuItem(5, R.drawable.ic_action_search));
items.add(new SatelliteMenuItem(4, R.drawable.ic_action_search));
items.add(new SatelliteMenuItem(3, R.drawable.ic_action_search));
items.add(new SatelliteMenuItem(2, R.drawable.ic_action_search));
items.add(new SatelliteMenuItem(1, R.drawable.ic_action_search));
menu.addItems(items);
将卫星菜单添加为项目属性中的库。然后,您将在自定义和库视图中获取卫星菜单,只需将其拖放到您的xml文件中即可。然后将上面的代码放在你实际为卫星菜单设置数据的java文件中。