【问题标题】:custom joystickView doesn't work in xml - Android自定义游戏杆视图在 xml 中不起作用 - Android
【发布时间】:2014-05-11 10:51:50
【问题描述】:

我正在尝试为我的项目实现自定义 JoystickView,通过搜索我找到了这个库:https://github.com/zerokol/JoystickView

我已将 jar 添加到 lib 文件夹并将 jar 文件添加到构建路径。问题是当我尝试在我的屏幕上添加它时它不起作用。我是android新手,现在被卡住了。你能告诉我哪里错了吗?

以下代码与链接示例代码相同,但 xml 文件除外

我的主要课程: 包 com.example.joystickdeneme;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

import com.zerokol.views.JoystickView;
import com.zerokol.views.JoystickView.OnJoystickMoveListener;

public class MainActivity extends Activity {



private TextView angleTextView;
private TextView powerTextView;
private TextView directionTextView;
// Importing as others views
private JoystickView joystick;

@Override
public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     angleTextView = (TextView) findViewById(R.id.angleTextView);
     powerTextView = (TextView) findViewById(R.id.powerTextView);
     directionTextView = (TextView) findViewById(R.id.directionTextView);
     // referring as others views
     joystick = (JoystickView) findViewById(R.id.joystickView);

     // Listener of events, it'll return the angle in graus and power in percents
     // return to the direction of the moviment
     joystick.setOnJoystickMoveListener(new OnJoystickMoveListener() {
          @Override
          public void onValueChanged(int angle, int power, int direction) {
               angleTextView.setText(" " + String.valueOf(angle) + "°");
               powerTextView.setText(" " + String.valueOf(power) + "%");
               switch (direction) {
                    case JoystickView.FRONT:
                         directionTextView.setText(R.string.front_lab);
                         break;

                    case JoystickView.FRONT_RIGHT:
                         directionTextView.setText(R.string.front_right_lab);
                         break;

                    case JoystickView.RIGHT:
                         directionTextView.setText(R.string.right_lab);
                          break;

                    case JoystickView.RIGHT_BOTTOM:
                         directionTextView.setText(R.string.right_bottom_lab);
                         break;

                    case JoystickView.BOTTOM:
                         directionTextView.setText(R.string.bottom_lab);
                         break; 

                    case JoystickView.BOTTOM_LEFT:
                         directionTextView.setText(R.string.bottom_left_lab);
                         break;

                    case JoystickView.LEFT:
                         directionTextView.setText(R.string.left_lab);
                         break;

                    case JoystickView.LEFT_FRONT:
                         directionTextView.setText(R.string.left_front_lab);
                         break;

                    default:
                         directionTextView.setText(R.string.center_lab);
               }
          }
     }, JoystickView.DEFAULT_LOOP_INTERVAL);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

和我的 xml 文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world"
    android:id="@+id/angleTextView" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" 
    android:id="@+id/powerTextView" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world"
    android:id="@+id/directionTextView" />


<com.example.joystickdeneme

     zerokol.views.joystickview=".zerokol.views.joystickview"
     android:id="@+id/joystickView"
     android:layout_height="wrap_content"
     android:layout_width="wrap_content" >
</com.example.joystickdeneme>

</LinearLayout>

【问题讨论】:

    标签: java android xml joystick


    【解决方案1】:

    我知道我的错误出在布局文件中,我称之为操纵杆的地方应该是:&lt;com.zerokol.views.JoystickView android:id="@+id/joystickView" android:layout_width="150dp" android:layout_height="150dp" /&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      相关资源
      最近更新 更多