Android自定義View實現(xiàn)跟隨手指移動的小兔子
本文實例為大家分享了Android自定義View實現(xiàn)跟隨手指移動的小兔子,供大家參考,具體內容如下
自定義的View實現(xiàn)跟隨手指的小兔子

按前面的例子新創(chuàng)建一個project,再在project中新創(chuàng)建一個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" #設置背景圖 android:id="@+id/activity_main" # 設置id tools:context="com.example.MainActivity"> //刪除原來的文本框 </FrameLayout>
設計結果:

新建一個java class


新建java class后自動生成的代碼
package com.example;
/**
* Created by hahaha on 2020/10/30.
*/
public class RabatView {
}
修改設計:自定義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{
//設置小兔子位置
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);
// 定義繪圖對象
Paint paint = new Paint();
//定義繪圖內容
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.mipmap.rabat);
//開始繪圖
canvas.drawBitmap(bitmap, bitmipX, bitmipY, paint);
if (bitmap.isRecycled()){
bitmap.recycle();// 回收圖片
}
}
}
MainActivity.java調用
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);
//定義幀布局管理器對象,要強制轉換類型
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.activity_main);
//定義調用自定義RabatView 類對象
final RabatView rabat = new RabatView(this);
//設置觸發(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);//添加進布局管理器
}
}
結果:小兔子隨著鼠標移動會移動


以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
android studio 一直卡在Gradle:Build Running的幾種解決辦法
這篇文章主要介紹了android studio 一直卡在Gradle:Build Running的解決辦法,非常具有實用價值,需要的朋友可以參考下2017-10-10
Android提高之ListView實現(xiàn)自適應表格的方法
這篇文章主要介紹了Android采用ListView實現(xiàn)自適應表格的方法,比較實用的功能,需要的朋友可以參考下2014-08-08
kotlin anko頁面跳轉實現(xiàn)方式,攜帶參數(shù)或flag
這篇文章主要介紹了kotlin anko頁面跳轉實現(xiàn)方式,攜帶參數(shù)或flag,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android實現(xiàn)QQ新用戶注冊界面遇到問題及解決方法
這篇文章主要介紹了Android實現(xiàn)QQ新用戶注冊界面遇到問題及解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
Android使用libgdx實現(xiàn)模擬方向鍵控制角色移動的方法
這篇文章主要介紹了Android使用libgdx實現(xiàn)模擬方向鍵控制角色移動的方法,實例分析了Android中使用libgdx框架實現(xiàn)響應方向鍵的技巧,適用于Android游戲開發(fā)領域,需要的朋友可以參考下2015-12-12
Android自定義View實現(xiàn)拖動自動吸邊效果
這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)拖動自動吸邊效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
Android 數(shù)據(jù)存儲之 FileInputStream 工具類及FileInputStream類的使用
這篇文章主要介紹了Android 數(shù)據(jù)存儲之 FileInputStream 工具類及FileInputStream類的使用的相關資料,需要的朋友可以參考下2015-11-11

