在我的项目中设置卫星菜单

时间:2013-04-25 01:00:22

标签: android

我在这里指出了这个项目:

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"

一个和另一个的组合。但我只是继续得到同样的错误。

我做错了什么?

3 个答案:

答案 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文件中。