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

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

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

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

Q&A

解決済

1回答

1635閲覧

Android studioでアニメーションができない

退会済みユーザー

退会済みユーザー

総合スコア0

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

0グッド

0クリップ

投稿2020/11/07 11:53

android studioでkotkinを使い、イラストレーターで作成した画像のアニメーションを実装したい。

発生している問題・エラーメッセージ

エラーメッセージ Unresolved reference: imageView

該当のソースコード

kotlin

1package jp.bool.shake 2 3 4import androidx.appcompat.app.AppCompatActivity 5import android.os.Bundle 6import android.view.View 7import android.view.animation.Animation 8import android.view.animation.TranslateAnimation 9 10 11class shakeActivity : AppCompatActivity(){ 12 13 override fun onCreate(savedInstanceState: Bundle?) { 14 super.onCreate(savedInstanceState) 15 setContentView(R.layout.shake) 16 } 17 18 fun onButtonClick(v: View){ 19 val translate = TranslateAnimation(0f, 0f, 0f, -200F) 20 translate.repeatMode = Animation.REVERSE 21 translate.repeatCount = 5 22 translate.duration = 100 23 imageView.startAnimation(translate) 24     ↑このimageViewの部分が赤くなり、エラーを起こします! idが合っているのはなんども確認しました。 25 } 26 } 27 28

xml

1?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:gravity="center_horizontal|center_vertical" 7 android:orientation="vertical"> 8 9 <ImageView 10 android:id="@+id/imageView" 11 android:layout_width="match_parent" 12 android:layout_height="wrap_content" 13 android:layout_weight="1" 14 app:srcCompat="@drawable/mdpi" /> 15 16 <Button 17 android:id="@+id/button" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content" 20 android:onClick="onButtonClick" 21 android:text="@string/Bt_action" /> 22</LinearLayout>

アニメーションしたい画像のidはimageViewで間違いなく、なぜエラーが発生するのかがわかりません。前回も同じ実装をして、問題なく動作したのですが…。

補足情報

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これはAndroid Studio 4.1で作成したプロジェクトでしょうか。コンポーネントのIDを直接コードに記述して参照することができるのはKotlin Android Extensionsというプラグインの機能によるものですが、4.0まではデフォルトでこのプラグインを用いることができるプロジェクトが作成されていたものが、4.1からは省かれるようになりました。(理由はよく知りません)

改善方法としては、build.gradle(app)を修正してプラグインを記述する方法と、findViewById()を用いてImageViewのオブジェクトを参照できるようにする方法の2つがあります。


(改善方法1)

build.gradle(app)を開いて、

gradle

1plugins { 2 id 'com.android.application' 3 id 'kotlin-android' 4 id 'kotlin-android-extensions' 5}

のようにkotlin-android-extensionsのプラグインの記述を追加してください。それから、Kotlinソースコードでは

kotlin

1import kotlinx.android.synthetic.main.activity_main.*

のimport文を追加してください。


(改善方法2)

findViewById()を用いてImageViewのオブジェクトを参照できるように記述を追加してください。

kotlin

1 fun onButtonClick(v: View){ 2 val translate = TranslateAnimation(0f, 0f, 0f, -200F) 3 translate.repeatMode = Animation.REVERSE 4 translate.repeatCount = 5 5 translate.duration = 100 6 val imageView: ImageView = findViewById(R.id.imageView) // この行を追加 7 imageView.startAnimation(translate) 8 } 9

どちらか一方を実施すれば改善できると思います。

投稿2020/11/07 14:31

keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/08 01:01

ありがとうございます! 無事に実装出来ました! 差し支えなければ、もう一つ質問しても宜しいでしょうか? 『コンポーネントのIDを直接コードに記述して参照することができるのはKotlin Android Extensionsというプラグインの機能によるものですが、4.0まではデフォルトでこのプラグインを用いることができるプロジェクトが作成されていたものが、4.1からは省かれるようになりました』 こういった知識はどうやって入手できるのでしょうか? 上記の情報源を検索して探してみましたが見つからず、keicha_hrsさんはどのようにして知りえたのか、その調査方法をご教授願えないでしょうか?
keicha_hrs

2020/11/08 08:09

主にネットで情報をつぶさにチェックしている程度です。また、Android Studioもバージョンが上がる度に公式のリリースノートをチェックしたり、複数バージョン導入して比較したりといった情報収集を行っています。
退会済みユーザー

退会済みユーザー

2020/11/09 14:11

丁寧にありがとうございました! 感謝です!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問