0 0

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

代码如下:
public class mainActivity extends Activity {
/** Called when the activity is first created. */
private RelativeLayout al;
private TextView tv;
private View v;
private LinearLayout ll;
Point point = null;
private LinearLayout.LayoutParams LP_WW = new LinearLayout.LayoutParams(50,
LayoutParams.FILL_PARENT);

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);

                //怎么在这个显示中加入滚动条??我希望是在DrawPage类中加入的图片全显示出来。

// 构造一个 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;
}
}
2009年10月10日 10:19

1个答案 按时间排序 按投票排序

0 0

观望……

2009年10月10日 17:37

相关推荐

    Android特效——数字滚动条

    4. **布局管理**:数字滚动条可能需要嵌入到其他布局中,如LinearLayout或RelativeLayout,因此需要理解Android的布局管理系统,以便正确地配置和放置自定义View。 5. **事件处理**:滚动条可能需要响应用户的触摸...

    android日期选择 滚动条代码

    在这个类中,我们可以覆盖`onDraw()`方法来绘制自己的滚动条样式,同时重写`onMeasure()`以确定视图的大小。 2. 添加XML布局:在XML布局文件中,通过`<your_package_name.YourCustomSeekBar>`标签引入自定义滚动条...

    Android实现可用性非常高的滚动数字条

    在Android开发中,创建一个高度可用且具有吸引力的滚动数字条可以提升用户界面的互动性和体验。本篇文章将深入探讨如何实现这样一个功能,基于提供的标签"源码"和"工具",我们可以推断这是一个关于自定义视图的教程...

    安卓下拉上拉刷新相关-Android--滚动条下拉反弹的效果安卓开发UI特效.rar

    这个压缩包文件“Android -- 滚动条下拉反弹的效果【安卓开发UI特效】”主要关注的就是这一特性,旨在帮助开发者实现更生动、更具互动性的滚动体验。 下拉上拉刷新通常用于列表视图(ListView)、滚动视图...

    安卓Android源码——简单实现 一条线 跟随 viewpager 滚动.rar

    在安卓Android开发中,Viewpager是一个非常常用的组件,它用于展示多个页面并允许用户通过滑动来切换。这个压缩包中的资源提供了一个简单的实现,即一条线跟随Viewpager滚动的效果,这种效果通常用于指示当前选中的...

    android 仿iphone滑动控件

    6. **属性定制**:为了方便在XML布局文件中使用和配置,可以添加自定义属性。这可以通过创建一个`attrs.xml`资源文件,定义属性,然后在自定义View的构造函数中读取它们。 7. **测试和调试**:最后,通过单元测试和...

    Android高级应用源码-listview快速滑动,修改默认的滑动条.zip

    2. **XML配置**:在ListView的XML布局文件中,可以通过`android:scrollbars="vertical"`启用垂直滚动条,并通过`android:scrollbarThumbVertical`和`android:scrollbarTrackVertical`分别设置滚动条的拇指和轨道的...

    Android应用源码之简单实现 一条线 跟随 viewpager 滚动.zip

    标题中的“Android应用源码之简单实现 一条线 跟随 viewpager 滚动”指的是一个Android应用程序,该程序实现了一个功能:一条指示线(通常是一个指示点或者线条)随着ViewPager的滚动而移动,以此来指示当前显示的是...

    Android 垂直SeekBar(拖动条)-IT计算机-毕业设计.zip

    在Android开发中,SeekBar是一个非常常见的控件,用于实现用户通过拖动条来选择一个介于最小值和最大值之间的值。垂直SeekBar则是其一种特殊形式,与常规水平 SeekBar 相比,它的滑动方向是垂直的。在这个"Android ...

    ListViewCustomerFastScroller-0.1

    6. **自定义属性**:为了让开发者能够方便地在XML布局文件中配置滚动条的样式,可能还定义了一些自定义属性,如图标资源ID、颜色等,通过`attrs.xml`文件定义,并在代码中解析这些属性。 7. **性能优化**:在处理...

    Android 非常漂亮的滚动选择日期控件.rar

    这个控件就是自定义View的一个实例,它可能继承自`View`或`ViewGroup`,并覆盖了`onDraw()`方法来绘制滚动条和日期元素。 2. **触摸事件处理**:为了实现滚动功能,控件需要监听用户的触摸事件,包括`MotionEvent`...

    Android 自定义WheelView

    在`WheelView`中,我们需要绘制滚动条、背景和选中项等元素。 3. **滚动机制**: 实现`WheelView`的滚动功能,我们需要处理触摸事件。通过重写`onTouchEvent()`方法,我们可以获取用户的滑动操作。然后根据滑动...

    Android 模仿iphone时间滚轮控件源码-IT计算机-毕业设计.zip

    7. **布局管理**:虽然自定义控件通常不包含布局文件,但在使用该控件时,开发者需要考虑如何在XML布局文件中正确地添加和配置这个控件。 8. **毕业设计与论文**:对于毕业生来说,这个项目可以作为毕业设计的一...

    AndroidAutoLayout自动换行viewgroup

    这种布局方式在处理标签、选项或者商品列表时非常实用,因为它能自动适应屏幕大小的变化,避免滚动条的出现,从而提高用户交互性。 AndroidAutoLayout的实现原理可能涉及到对子View的测量、布局和绘制过程的重写。...

    安卓Android源码——仿美图秀秀拼图功能.zip

    - 资源文件:161751uaera8zcs2r2qkzc.png是一个可能用于示例的图片资源,Android应用中,图片通常存放在res/drawable目录下,通过R类引用。 - ClotheImage:可能是一个自定义的图片处理类,封装了图片的加载、处理...

    Android 简单实现 一条线 跟随 viewpager 滚动-IT计算机-毕业设计.zip

    8. **生命周期管理**: Android应用中,由于Fragment和Activity有自己的生命周期,开发者需要考虑如何在各个生命周期方法中正确管理和恢复状态,特别是在配置变更(如屏幕旋转)时。 9. **性能优化**: 对于包含多个...

    Android代码-WheelView

    在这个项目中,`WheelView`是作为一个自定义的`View`类实现的,开发者通过重写`onDraw()`方法来绘制滚动视图,以实现轻量级的定制功能。 ### 自定义View 自定义`View`是Android开发中的一个重要概念,允许开发者...

    MidiSheetMusic 滚动五线谱android demo

    在Android应用中,开发者需要设计一套图形界面,利用Canvas或Android的View系统,绘制出五线谱的线条、音符和符号。同时,为了适应不同大小的屏幕,需要考虑布局的自适应和响应式设计。 滚动五线谱功能的实现,主要...

    android listview的使用方法

    2. 设置ListView的滚动条样式为`scrollbars=none`,以减少绘制开销。 3. 使用AsyncTask或者Loader加载数据,避免阻塞UI线程。 4. 当数据量过大时,考虑使用分页加载或无限滚动。 此外,还可以利用Header和Footer来...

    Android快速索引:实现微信通讯录效果

    在`QuickActionBar`这个文件中,可能包含了实现快速索引的自定义View类,你可以查看其源代码来学习如何处理触摸事件和改变视图状态。通过深入理解这些知识点,你就能实现一个与微信通讯录类似的快速索引功能。在实际...

Global site tag (gtag.js) - Google Analytics