Android自定义surfaceView显示多张图片
2013-09-26 09:31
417 查看
我自定义了一个surfaceview,我在上面绘制多张图片,让它能够上下方滚显示图片,但是onMeasure()方法在重写的时候遇到了问题,不知道如何设置它的高度,
来自:安卓教程网
public class MySurfaceView extends SurfaceView implements Callback{ private SurfaceHolder sfh; private Paint paint; public MySurfaceView(Context context) { super(context); init(context); } private void init(Context context) { sfh=this.getHolder(); sfh.addCallback(this); paint=new Paint(); paint.setColor(Color.WHITE); } public MySurfaceView(Context context, AttributeSet attrs, int defStyle) { super(context,attrs,defStyle); init(context); } public MySurfaceView(Context context, AttributeSet attrs) { super(context,attrs); init(context); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { myDraw(); } private void myDraw() { Canvas canvas=sfh.lockCanvas(); canvas.drawRect(0, 0, this.getWidth(), this.getHeight(), new Paint()); Bitmap bmp=readBitmap(getResources(), R.drawable.pic0); Matrix matrix=new Matrix(); matrix.setScale(0.15f, 0.15f); matrix.postTranslate(100, 0); canvas.drawBitmap(bmp, matrix, paint); matrix.postTranslate(0, 450); bmp=readBitmap(getResources(), R.drawable.pic2); canvas.drawBitmap(bmp, matrix, paint); matrix.postTranslate(0, 500); bmp=readBitmap(getResources(), R.drawable.pic5); canvas.drawBitmap(bmp, matrix, paint); matrix.postTranslate(0, 550); bmp=readBitmap(getResources(), R.drawable.pic7); canvas.drawBitmap(bmp, matrix, paint); sfh.unlockCanvasAndPost(canvas); if(bmp!=null) bmp.recycle(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { } @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub super.onMeasure(widthMeasureSpec, heightMeasureSpec); setMeasuredDimension(800, 2000);//2:5 2000 5000 1600 4000 2:5 } public static Bitmap readBitmap(Resources r, int resId) { BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; InputStream is = r.openRawResource(resId); return BitmapFactory.decodeStream(is, null, opt); } }
来自:安卓教程网
相关文章推荐
- Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示
- Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示
- Android自定义View实现图片显示,并实现缩放、拖拽、切换功能
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- android在jni中对SurfaceView显示一张图片
- Android可以动态控制图片显示区域的自定义ImageView
- Android学习札记47:TextView显示Html类解析的网页和图片及自定义标签
- Android自定义TextView实现文字图片居中显示
- android中使用自定义View让图片像画卷一样被展开显示
- android使用movie显示gif图片的自定义view
- android 自定义ImageView -图片显示相关1
- Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示
- android 缩放平移自定义View 显示图片
- 【Android】在SurfaceView上显示透明图片
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- android 自定义ImageView显示圆形图片
- Android 在ViewPager中使用的可以画线,放大,保存,点击删除线条的自定义图片显示控件
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- Android TextView显示Html类解析的网页和图片及自定义标签用法示例
- android中自定义view显示gif格式图片