Android View中的setMeasuredDimension方法

來源:互聯網
上載者:User

繼承View,實現自己想要的組件,那麼需要使用到setMeasuredDimension這個方法,這個方法決定了當前View的大小,請看代碼:

View的代碼: Java代碼   package cc.mdev.test;      import android.content.Context;   import android.graphics.Canvas;   import android.graphics.Color;   import android.text.TextPaint;   import android.util.AttributeSet;   import android.util.Log;   import android.view.View;      public class MyScrollView extends View {      public MyScrollView(Context context, AttributeSet attrs) {   super(context, attrs);   }      public MyScrollView(Context context) {   super(context);   }   @Override   protected void onDraw(Canvas canvas) {   TextPaint paint = new TextPaint();   paint.setAntiAlias(true);   canvas.drawColor(Color.GRAY);   for (int i = 10; i < 500; i++) {   canvas.drawText("This is the scroll text.", 10, i, paint);   i = i+15;   }   }      @Override   protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   String tag="onMeasure";   Log.e(tag, "Scroll View on measure...");   setMeasuredDimension(200, 800);   }      @Override   protected void onScrollChanged(int l, int t, int oldl, int oldt) {   String tag = "onScrollChanged";   Log.e(tag, "Scroll....");   super.onScrollChanged(l, t, oldl, oldt);   }   }    




布局檔案: Xml代碼   <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#fff" > <Button android:text="Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <cc.mdev.test.MyScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"/> </ScrollView> </LinearLayout>     



效果就是自訂視圖的大小為
200, 800,並且放入到ScrollView中,ScrollView會啟作用,如果不使用setMeasuredDimension這個方法,那麼
ScrollView不會有作用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.