【发布时间】:2011-02-14 09:42:07
【问题描述】:
在我的应用程序中,我想放置一个 .png 文件,我希望它在横向和纵向模式下都被视为滚动图像,请建议代码或示例....
【问题讨论】:
标签: java android scrollview
在我的应用程序中,我想放置一个 .png 文件,我希望它在横向和纵向模式下都被视为滚动图像,请建议代码或示例....
【问题讨论】:
标签: java android scrollview
若要让您的 Imageview 在高度不合适时滚动,您可以在 xml 中的 ScrollView 中下一个 ImageView,并添加此参数 -
android:adjustViewBounds="true"
这是一个例子 -
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@drawable/back" >
</ImageView>
</ScrollView>
【讨论】:
一个简单的解决方案是滚动一个包含比容器大得多的 ImageView 的容器:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/Container"
android:layout_width="200dp"
android:layout_height="200dp" >
<ImageView
android:id="@+id/ImageView01"
android:layout_width="480dp"
android:layout_height="800dp"
android:src="@drawable/sky_bgr" >
</ImageView>
</LinearLayout>
</LinearLayout>
然后使用代码滚动它:
public class StartActivity extends Activity {
private LinearLayout container;
private int currentX;
private int currentY;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
container = (LinearLayout) findViewById(R.id.Container);
container.scrollTo(220, 400);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
currentX = (int) event.getRawX();
currentY = (int) event.getRawY();
break;
}
case MotionEvent.ACTION_MOVE: {
int x2 = (int) event.getRawX();
int y2 = (int) event.getRawY();
container.scrollBy(currentX - x2 , currentY - y2);
currentX = x2;
currentY = y2;
break;
}
case MotionEvent.ACTION_UP: {
break;
}
}
return true;
}
}
这里可以进行许多改进,例如限制滚动范围等... 另一种方法是控制ImageView的矩阵... 然后您可以将图像加载到位图中并在画布上绘制它的一部分等
【讨论】:
试试这个:
<ScrollView>
<HorizontalScrollView>
<ImageView/>
</HorizontalScrollView>
</ScrollView>
【讨论】: