我正在处理想要向用户显示如下所示的长宽图像的应用程序。 用户可以向右或向左拖动图像,以查看整个图像或使用陀螺仪传感器。
所以,我在android中使用了HorizontalScrollView,下面的布局代码来实现我想要的
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="net.appersian.android.wod.MainActivity"
android:background="#000"
>
<HorizontalScrollView
android:id="@+id/scrollContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:fillViewport="true"
android:measureAllChildren="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="none" >
<ImageView
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/panorama_ph" />
</HorizontalScrollView>
此代码在Nexus 5等高端设备上运行良好但问题是在我在Android 4.2上测试Nexus S(512MB ram)上的应用程序时启动的!图像没有显示,在logcat中,我不断得到这个错误:
09-09 13:58:27.539: W/OpenGLRenderer(7925): Bitmap too large to be uploaded into a texture (6759x1136, max=2048x2048)
我不知道如何在没有Horizontalscrollview的情况下实现此效果或如何解决问题! 任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
您可以尝试使用photoView
<uk.co.senab.photoview.PhotoView
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
MainActivity.class
import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;
public class MainActivity extends Fragment{
PhotoViewAttacher mPhotoAttacher;
PhotoView mPhoto;
mPhoto = (PhotoView) rootView.findViewById(R.id.photo);
public void imageView(String imageUri, View view, Bitmap loadedImage)
{
mPhoto.setImageBitmap(loadedImage);
mPhoto.setVisibility(View.VISIBLE);
mPhotoAttacher = new PhotoViewAttacher(mPhoto);
}
}