A. android scrollview的水平滚动条问题,哪位高手给指教下啊,谢谢了!!
如果你把内容包含在ScrollView中,当内容超出高度时会自动出现滚动条。
另外,使用控件HorizontalScrollView 来包住你的内容时,
如果你的内容假设是一个LinearLayout, 那么当LinearLayout的宽度超过屏幕时, 将会自动产生滚动条,当你拖动鼠标时,效果跟scrollView一样,不过是横向而己
例:
纵向滚动
<ScrollView>
<LinearLayout ........>
<TextView ...../>
<TextView ...../>
<TextView ...../>
<TextView ...../>
</LineraLayout>
</ScrollView>
模向滚动
<HorizontalScrollView >
<LinearLayout ........>
<TextView ...../>
<TextView ...../>
<TextView ...../>
<TextView ...../>
</LineraLayout>
</HorizontalScrollView >
有时候甚至可以做到横向纵向都支持,只需要你合理设计就可以, 注意ScrollView中只能加一个控制,不能超过两个
B. 在android中按钮共分为几种
在Android开发中,View控件被广泛应用于各种界面设计,根据其功能和用途,可以将它们分为多种类型。其中,文本类控件包括TextView、EditText、AutoCompleteTextView、MultAutoCompletTextView、TextSwitcher、DigitalClock、ExtractEditText、CheckedTextView和Chronometer,这些控件主要用于显示或编辑文本信息。
按钮类控件包括Button、CheckBox、RadioButton(RadioGroup)、ToggleButton和ImageButton,它们主要用于用户交互,实现按钮点击、复选框选择、单选按钮选择等功能。
缩放按钮主要指ZoomButton和ZoomControls,用于实现缩放功能。
图片类控件则包括ImageView、ZoomButton、ImageButton和ImageSwitcher,它们用于显示图像资源,可以进行放大、缩小等操作。
时间控件如DigitalClock、AnalogClock、TimePicker和DatePicker,用于显示和选择时间或日期。
进度显示控件包括ProgressBar、AbsSeekBar、SeekBar和RatingBar,它们用于显示进度条或评分。
导航控件如TabHost和TabWidget,用于实现标签页导航。
视频媒体控件包括VideView和MediaController,用于播放视频内容。
Dialog对话框包括CharacherPickerDialog、AlertDialog、DatePickerDialog、ProgressDialog和TimePickerDialog,它们用于弹出对话框,提供选择、输入等功能。
布局类控件包括AbsoluteLayout、LinearLayout、RadioGroup、TableLayout、TableRow、RelativeLayout和FrameLayout,用于实现复杂的界面布局。
需要适配器的布局类控件包括AdapterView、AbsListView、GridView、ListView、AbsSpinner和Gallery,它们用于显示列表或网格数据。
滚动条控件包括HorizontalScrollView和ScrollView,用于实现垂直或水平滚动功能。
网页显示控件为WebView,用于显示网页内容。
动画类控件包括ViewAnimator、ViewFilpper、ViewSwitcher、ImageSwitcher和TextSwitcher,用于实现界面动画效果。
C. 求助,Android里面的seekbar怎么垂直显示
把seekbar复写了。。旋转90度就可以了。
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.SeekBar;
public class SlideBar extends SeekBar {
private int oHeight = 100;
private int oWidth = 30;
private int oProgress = -1;
private int oOffset = -1;;
private float xPos = -1;
private float yPos = -1;
private int top = -1;
private int bottom = -1;
private int left = -1;
private int right = -1;
public SlideBar(Context context) {
super(context);
}
public SlideBar(Context context, AttributeSet attrs) {
super(context, attrs);
oOffset = this.getThumbOffset();
oProgress = this.getProgress();
}
public SlideBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = View.MeasureSpec.getSize(heightMeasureSpec);
oHeight = height;
this.setMeasuredDimension(oWidth, oHeight);
}
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(h, w, oldw, oldh);
}
// 设置layout
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
left = l;
right = r;
top = t;
bottom = b;
}
// 画出滚动条
protected void onDraw(Canvas c) {
// 旋转
c.rotate(90);
//控制左右位置
c.translate(0,-30);
super.onDraw(c);
}
public boolean onTouchEvent(MotionEvent event) {
xPos = event.getX();
yPos = event.getY();
float progress = 1-(yPos-this.getTop())/(this.getBottom()- this.getTop());
oOffset = this.getThumbOffset();
oProgress = this.getProgress();
Log.d("offset" + System.nanoTime(), new Integer(oOffset).toString());
Log.d("progress" + System.nanoTime(), new Integer(oProgress).toString());
float offset;
offset = progress * (this.getBottom() - this.getTop());
this.setThumbOffset((int)offset);
Log.d("offset_postsetprogress" + System.nanoTime(), new Integer(oOffset).toString());
Log.d("progress_postsetprogress" + System.nanoTime(), new Integer(oProgress).toString());
// this.setProgress((int)(100*event.getY()/this.getBottom()));
this.setProgress((int)(100 * progress));
return true;
}
}