国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程自定義組件實例詳解

2019-10-22 18:33:42
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程自定義組件。分享給大家供大家參考,具體如下:

在Android中,所有的UI界面都是由View類和ViewGroup類及其子類組合而成。其中,View類是所有UI組件的基類,而ViewGroup類是容納這些UI組件的容器。

其本身也是View類的子類。

Android,自定義組件

在實際開發中,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,自定義組件

 

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁怀市| 兴化市| 乐清市| 石柱| 义乌市| 隆林| 中阳县| 肇庆市| 永春县| 容城县| 荣昌县| 大竹县| 中西区| 额敏县| 安新县| 洛南县| 丹江口市| 咸阳市| 九江市| 汽车| 长海县| 康定县| 金阳县| 光泽县| 突泉县| 河源市| 仁化县| 德惠市| 苏尼特右旗| 贵溪市| 屏东县| 松阳县| 新巴尔虎右旗| 宣化县| 凯里市| 房产| 长泰县| 巧家县| 札达县| 清河县| 天全县|