您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android編程中自定義組件的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。
具體如下:
在Android中,所有的UI界面都是由View類和ViewGroup類及其子類組合而成。其中,View類是所有UI組件的基類,而ViewGroup類是容納這些UI組件的容器。
其本身也是View類的子類。
在實際開發中,View類還不足以滿足程序所有的需求。這時,便可以通過繼承View類來開發自己的組件。
開發自定義組件的步驟:
1、創建一個繼承android.view.View類的View類,并且重寫構造方法。
2、根據需要重寫相應的方法。
3、創建并實例化自定義View類,并將其添加到布局管理器中。
現在來學習使用自定義類
1、首先創建一個java文件來繪制圖片
package myview; import com.example.allcode.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.view.View; public class MyView extends View{ public float bitmipx; public float bitmipy; public MyView(Context context) { super(context); bitmipx=550; bitmipy=550; // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //創建并實例化Paint對象 Paint paint = new Paint(); //根據圖片生成位圖對象 Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.image_equip_baibao_baicaodan); canvas.drawBitmap(bitmap, bitmipx,bitmipy, paint); //繪制圖片 if(bitmap.isRecycled()) //判斷圖片是否可以回收 { bitmap.recycle(); //強制回收圖片 } } }
2、在主activity中實例化圖片,并添加觸摸事件
package myview; import com.example.allcode.R; import android.app.Activity; import android.os.Bundle; import android.provider.ContactsContract.CommonDataKinds.Event; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.FrameLayout; public class ShowMyView extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.showmyview); FrameLayout framelayout = (FrameLayout) findViewById(R.id.showview); final MyView myview = new MyView(ShowMyView.this); //創建并示例化MyView類 //添加觸摸事件 myview.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub myview.bitmipx=event.getX(); myview.bitmipy=event.getY(); myview.invalidate();//重繪自定義組件 return true; } }); framelayout.addView(myview); } }
對應的布局文件
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/showview" //不要忘記這一行 > </FrameLayout>
效果圖如下:
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android編程中自定義組件的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。