0

带有加号/减号按钮的默认缩放控制按钮太丑陋,而且一键无法选择缩放级别。我想要这样的东西:

  • ==================O===========================+

我知道我可以自己画一个,只是想知道是否有任何现有的视图可以做到这一点。

4

1 回答 1

3

您正在显示一个 SeekBar。

您可以执行以下操作:

<RelativeLayout android:id="@+id/layoutSlider" android:orientation="horizontal" android:layout_width="180dp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_height="wrap_content">
 <ImageView android:id="@+id/imageLeft" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/imageLeft"></ImageView>
 <ImageView android:id="@+id/imageRight" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/imageRight"></ImageView>
 <SeekBar android:id="@+id/sliderZoom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/imageLeft" android:layout_toLeftOf="@id/imageRight" android:layout_centerVertical="true" style="@style/seekBar"></SeekBar>
</RelativeLayout>

或水平 LinearLayout 会做。

如果您只需要“-”和“+”符号,左侧和右侧的图像也可以是 TextView。

seekbar 有一个 OnSeekBarChangeListener 来监听调整

SeekBar mSliderZoom;
mSliderZoom = (SeekBar)findViewById(R.id.sliderZoom);

mSliderZoom.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
 @Override 
 public void onProgressChanged(SeekBar seekBar, int progress, Boolean fromUser)
 {
 }
.
.
.
});

这将为您提供与此示例类似的内容,该示例显示了一个“亮度”滑块,其中包含用于暗度/亮度的左右图像: 在此处输入图像描述

于 2013-10-31T14:34:32.720 回答