自定义view——实现换行显示图片

写了这个例子,只是为了实现简单的添加图片,当图片满了一行会自动的换行,并且使得自己定义的view可以再srollview的内部进行滚动。直接贴代码了:

package android.test;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ScrollView;

public class MyView extends ScrollView {
	private int count;

	public MyView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub

	}

	public MyView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected void onDraw(Canvas canvas) {
		// TODO Auto-generated method stub
		super.onDraw(canvas);
		canvas.drawColor(Color.WHITE);
		Paint paint = new Paint();
		paint.setAntiAlias(true);
		Bitmap bmp = BitmapFactory.decodeResource(this.getContext()
				.getResources(), R.drawable.flower);
		int j = 0;
		int k = 0;
		if (count != 0) {
			for (int i = 0; i < count; i++) {
				if (j + bmp.getWidth() > this.getWidth()) {
					j = 0;
					k = k + bmp.getHeight();
				}
				canvas.drawBitmap(bmp, j, k, paint);
				j = j + bmp.getWidth();
			}
			invalidate();
		}
	}

	public void setCount(int x) {
		count = x;
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		// TODO Auto-generated method stub
		super.onMeasure(widthMeasureSpec, heightMeasureSpec);
		setMeasuredDimension(800, 2000);
	}
}


 

你可能感兴趣的:(自定义view——实现换行显示图片)