永发信息网

android 在自己绘制view时,怎么在类中加入滚动条,不用配置文件

答案:2  悬赏:30  手机版
解决时间 2021-02-10 18:19
android 在自己绘制view时,怎么在类中加入滚动条,不用配置文件
最佳答案
// 构造一个 RelativeLayout,设置其背景色
al = new RelativeLayout(this);
al.setBackgroundColor(Color.YELLOW);

RelativeLayout.LayoutParams tvLP = new RelativeLayout.LayoutParams(
LayoutParams.FILL_PARENT, 30);

ll = new LinearLayout(this);
ll.setId(1);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setBackgroundColor(Color.GRAY);
Button button = new Button(this);
button.setText("退出");
button.setLayoutParams(LP_WW);
ll.addView(button);
al.addView(ll, tvLP);

v = new DrawPage(this);
RelativeLayout.LayoutParams vLP = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
vLP.addRule(RelativeLayout.PERSISTENT_ALL_CACHES, 1);
// 也可以先为子 View 设置 LayoutParams,然后再调用一个参数的 ViewGroup.addView(View)
// 来添加。效果是一样的。

al.addView(v, vLP);
this.setContentView(al);
}

class DrawPage extends View {
private int scrollX = 0;
private int scrollY = 0;
Paint paint = new Paint();
Bitmap me = null, me1 = null, me2 = null, me3 = null, me4 = null,
me5 = null;
Rect table1 = new Rect(0, 0, 155, 120);
Rect table2 = new Rect(155, 0, 311, 120);
Rect table3 = new Rect(0, 120, 155, 240);
Rect table4 = new Rect(0, 240, 155, 360);
Rect table5 = new Rect(0, 360, 155, 480);
Rect table6 = new Rect(0, 480, 155, 600);

Rect topChair = new Rect(53, 10, 77, 29);

public DrawPage(Context context) {
super(context);
me = loadImage(R.drawable.table4, table1);
me1 = loadImage(R.drawable.table4, table2);
me2 = loadImage(R.drawable.table4, table3);
me3 = loadImage(R.drawable.table4, table4);
me4 = loadImage(R.drawable.table4, table5);
me5 = loadImage(R.drawable.table4, table6);
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawBitmap(me, 0, 0, paint);
canvas.drawBitmap(me1, 0, 0, paint);
canvas.drawBitmap(me2, 0, 0, paint);
canvas.drawBitmap(me3, 0, 0, paint);
canvas.drawBitmap(me4, 0, 0, paint);
canvas.drawBitmap(me5, 0, 0, paint);
}

public Bitmap loadImage(int fileid, Rect rect) {
Resources r = this.getContext().getResources();
Bitmap bitmap = Bitmap.createBitmap(rect.right, rect.bottom,
Config.ARGB_8888);
Drawable drawable = r.getDrawable(fileid);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(rect);
drawable.draw(canvas);

return bitmap;
}
}
全部回答
同问。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国光大银行24小时自助银行(淄博分行)(吉祥
为什么要看老友记能提高英语口语
山西医学科学院山西大医院-发热门诊地址有知
如何建立常态化盘活存量资产管理机制
0)上任一点Q到顶点O的距离与到焦点F的距离之
中国建设银行24小时自助银行(泉龙北路)地址在
中国移动九连城通讯指定专营店这个地址在什么
我家阿拉斯加四个月了。最近总是不听话随便大
爵士舞用下腰吗?
十万元汽车<4s>店赚你多少钱以及出厂价大约多
【四处奔波】四处奔波是什么意思
西安肉块面总店在哪里啊,我有事要去这个地方
中国工商银行(将军路分理处)(山川路2甲3号中
烟台一级医院有哪些?
为什么光子静止质量为零
推荐资讯
这个 这个唱吧里边有的人关注得很少,才两三
住七楼好累啊上一次楼累的不行了有什么办法不
小福兴西餐厅地址有知道的么?有点事想过去
三彩童画少儿美术在哪里啊,我有事要去这个地
顺发公寓(顺玮阁大酒店东南)地址好找么,我有
英国签证官网为什么没有南京??
我之前去做餐饮培训小抄什么的,我这个人不爱
通用汽修地址好找么,我有些事要过去
中心大酒店停车场地址在什么地方,我要处理点
设A、B都是n阶可逆矩阵,则=A.(-3)│A││B│
工程类有哪些资格证书
兄第机械(西安)有限公司怎么去啊,有知道地址
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?