增加android中的位图大小

时间:2014-09-09 09:32:35

标签: android bitmap horizontal-scrolling horizontalscrollview

我正在处理想要向用户显示如下所示的长宽图像的应用程序。 用户可以向右或向左拖动图像,以查看整个图像或使用陀螺仪传感器。 this is what i want

所以,我在android中使用了Horizo​​ntalScrollView,下面的布局代码来实现我想要的

<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)

我不知道如何在没有Horizo​​ntalscrollview的情况下实现此效果或如何解决问题! 任何人都可以帮我解决这个问题吗?

1 个答案:

答案 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);
                }
        }