質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

解決済

Kotlinでタップした場所に画像を描画すると右下にずれる

user3799257542
user3799257542

総合スコア18

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1回答

0リアクション

0クリップ

159閲覧

投稿2022/09/12 12:08

実現したいこと

タップした部分に画像を描画できているのですが右下にずれます。
タップした部分が画像の中央座標となるように描画したいです。

ある記事では、タップした部分は画像の左上座標を示すため右下にずれる・・・と記述があったので、32*32の小さな画像を用意しましたがズレ具合は変わりませんでした。
このズレは何からきているのでしょうか。
またズレはどのように調整すればよいのでしょうか。

ソースコード

onTouchEventで画像を描画する座標をセットしています。
img1.pngの解像度は32*32の小さいファイルです。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:ignore="UsingOnClickInXml" tools:context=".MainActivity" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mainActivity" > <ImageView android:id="@+id/img1" android:layout_width="100px" android:layout_height="100px" android:src="@drawable/img1" tools:ignore="MissingConstraints" /> </androidx.constraintlayout.widget.ConstraintLayout>

MianActivity.kt

private var x: Float = 0f private var y: Float = 0f override fun onTouchEvent(event: MotionEvent?): Boolean { x = event!!.x y = event.y binding.img1.x = x binding.img1.y = y return true }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

jimbe

2022/09/12 16:42 編集

まず基本的に、xml 等でレイアウトしているビューの位置をコードでテキトウに変更しようとしないで下さい。 各ビューは各々階層上位のビューによって位置や大きさを管理され、必要ならそれらを自動的に変更しています、(表示したら終わりはありません。表示されている間、常に行われる可能性があります。) タップした位置に画像を表示するのであれば、そのような機能を持つビューを探してくるなり作るなりするのが確実でしょう。
user3799257542

2022/09/13 10:22

jimbeさん、ありがとうございます! 根本から見直すべく調べてきます。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。