Android自定義View實(shí)現(xiàn)跟隨手指移動(dòng)的小兔子
本文實(shí)例為大家分享了Android自定義View實(shí)現(xiàn)跟隨手指移動(dòng)的小兔子,供大家參考,具體內(nèi)容如下
自定義的View實(shí)現(xiàn)跟隨手指的小兔子
按前面的例子新創(chuàng)建一個(gè)project,再在project中新創(chuàng)建一個(gè)module
將需要的背景圖和兔子圖片放入mipmap中
將布局管理器改為幀布局管理器
<?xml version="1.0" encoding="utf-8"?> //修改為幀布局管理器FrameLayout <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@mipmap/bg1" #設(shè)置背景圖 android:id="@+id/activity_main" # 設(shè)置id tools:context="com.example.MainActivity"> //刪除原來(lái)的文本框 </FrameLayout>
設(shè)計(jì)結(jié)果:
新建一個(gè)java class
新建java class后自動(dòng)生成的代碼
package com.example; /** * Created by hahaha on 2020/10/30. */ public class RabatView { }
修改設(shè)計(jì):自定義RabatView.java
package com.example; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.view.View; /** * Created by hahaha on 2020/10/30. */ //繼承自View類 public class RabatView extends View{ //設(shè)置小兔子位置 public float bitmipX; public float bitmipY; public RabatView(Context context) { super(context); bitmipX = 290; bitmipY = 130; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 定義繪圖對(duì)象 Paint paint = new Paint(); //定義繪圖內(nèi)容 Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.mipmap.rabat); //開(kāi)始繪圖 canvas.drawBitmap(bitmap, bitmipX, bitmipY, paint); if (bitmap.isRecycled()){ bitmap.recycle();// 回收?qǐng)D片 } } }
MainActivity.java調(diào)用
package com.example; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.FrameLayout; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //定義幀布局管理器對(duì)象,要強(qiáng)制轉(zhuǎn)換類型 FrameLayout frameLayout = (FrameLayout) findViewById(R.id.activity_main); //定義調(diào)用自定義RabatView 類對(duì)象 final RabatView rabat = new RabatView(this); //設(shè)置觸發(fā)事件 rabat.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { rabat.bitmipX = motionEvent.getX();//獲取重新繪制圖片的X位置 rabat.bitmipY = motionEvent.getY();//獲取重新繪制圖片的Y位置 rabat.invalidate(); return true; } }); frameLayout.addView(rabat);//添加進(jìn)布局管理器 } }
結(jié)果:小兔子隨著鼠標(biāo)移動(dòng)會(huì)移動(dòng)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android跟隨手指移動(dòng)的控件demo實(shí)例
- Android繪制跟隨手指移動(dòng)的小球
- Android自定義圓形View實(shí)現(xiàn)小球跟隨手指移動(dòng)效果
- Android實(shí)現(xiàn)拖動(dòng)小球跟隨手指移動(dòng)效果
- Android實(shí)現(xiàn)View拖拽跟隨手指移動(dòng)效果
- Android中View跟隨手指移動(dòng)效果
- Android View移動(dòng)的六種方法小結(jié)
- Android View移動(dòng)的3種方式總結(jié)
- Android切換至SurfaceView時(shí)閃屏(黑屏閃一下)以及黑屏移動(dòng)問(wèn)題的解決方法
- Android自定義View實(shí)現(xiàn)跟隨手指移動(dòng)
相關(guān)文章
Android View 測(cè)量流程(Measure)全面解析
這篇文章主要為大家全面解析了Android View 測(cè)量流程Measure,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android通過(guò)json向MySQL中讀寫數(shù)據(jù)的方法詳解【讀取篇】
這篇文章主要介紹了Android通過(guò)json向MySQL中讀寫數(shù)據(jù)的方法,涉及Android解析json以及與php交互讀取mysql的方法,需要的朋友可以參考下2016-06-06Android實(shí)現(xiàn)城市選擇三級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)城市選擇三級(jí)聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12Android中雙擊返回鍵退出應(yīng)用實(shí)例代碼
本篇文章主要介紹了Android中雙擊返回鍵退出應(yīng)用實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03android獲取手機(jī)唯一標(biāo)識(shí)的方法
這篇文章主要介紹了獲取安卓的手機(jī)或者平板的唯一標(biāo)識(shí)的方法,需要的朋友可以參考下2014-02-02Android 開(kāi)發(fā)延時(shí)調(diào)用的幾種方法
本篇文章主要介紹Android 延遲, 在Android 程序開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到程序推遲時(shí)間執(zhí)行,這里整理了幾種方法,以便Android 開(kāi)發(fā)的朋友參考2016-07-07Android實(shí)現(xiàn)鍵盤彈出界面上移的實(shí)現(xiàn)思路
這篇文章主要介紹了Android實(shí)現(xiàn)鍵盤彈出界面上移的實(shí)現(xiàn)思路,需要的朋友可以參考下2018-04-04Android編程實(shí)現(xiàn)抽屜效果的方法示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)抽屜效果的方法,結(jié)合具體實(shí)例形式分析了Android抽屜效果的布局、功能實(shí)現(xiàn)及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-06-06Android基于ViewPager Fragment實(shí)現(xiàn)選項(xiàng)卡
這篇文章主要介紹了Android基于ViewPager Fragment實(shí)現(xiàn)選項(xiàng)卡的相關(guān)資料,需要的朋友可以參考下2015-11-11