View中的setMeasuredDimension方法

继承View,实现自己想要的组件,那么需要使用到setMeasuredDimension这个方法,这个方法决定了当前View的大小,请看代码:

View的代码:

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 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不会有作用。


转自:http://www.ithao123.cn/content-1054436.html





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值