سؤال

أحاول رسم شكل على قماش والحصول على معلومات حول النقرات التي يقوم بها المستخدم على تلك القماش.

لقد أنشأت فئة تمتد فئة الأزرار.

  class CustomDrawableButton extends Button {
    private final ShapeDrawable mDrawable;
    int x = 50;
    int y = 50;
    int width = 30;
    int height = 30;

    public CustomDrawableButton (Context context) {
       super(context);
       mDrawable = new ShapeDrawable (new OvalShape ());
       mDrawable.getPaint().setColor(Color.GREEN);
       mDrawable.setBounds(x, y, x + width, y + height);
    }

    protected void onDraw(Canvas canvas) {
      mDrawable.draw(canvas);
    }
  }

بعد ذلك ، في فصل يمتد أيضًا عرض العرض ، أضفت التثبيت والمستمع:

  CustomDrawableButton mCustomDrawableButton = new CustomDrawableButton(getBaseContext());

  layout.addView(mCustomDrawableButton);

  mCustomDrawableButton.draw(canvas);

  mCustomDrawableButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
      System.out.println("Yey clicked");
     Toast.makeText(view.getContext(), "Yey", Toast.LENGTH_LONG).show();
    }});

عند تنفيذ ذلك ، لا يمكنه اكتشاف النقرات على الصورة / الزر. لقد قرأت أن الكائنات القابلة للتشكيل لا يمكن أن تكون "قابلة للنقر" ، لكنني كنت أتوقع أن يعمل هذا منذ أن قمت بتوسيع الزر (وهو طريقة عرض و "قابلة للنقر").

هل هذا ممكن؟ إذا لم يكن الأمر كذلك ، هل يمكنك توجيهي إلى طريقة ما للحصول على معلومات حول إحداثيات الشاشة التي تم الضغط عليها على قماش أو طريقة عرض؟

شكرا مقدما.

هل كانت مفيدة؟

المحلول

بعد البحث ، إليك برنامج تعليمي يوضح كيفية القيام بذلك باستخدام موضع الشاشة الذي تم لمسه.

http://marakana.com/tutorials/android/2d-graphics-example.html

ما زلت لا أعرف كيفية القيام بذلك عن طريق ربط الحدث الذي تم لمسه تلقائيًا. إذا كان أي شخص يعرف كيفية القيام بذلك ، فيرجى قول ذلك.

شكرًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top