概述
继承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
最后
以上就是难过芒果为你收集整理的View中的setMeasuredDimension方法的全部内容,希望文章能够帮你解决View中的setMeasuredDimension方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复