Android ScrollVIew屏幕截图尺寸太小

时间:2018-08-07 10:23:07

标签: android android-scrollview

我有一个滚动视图,其中包含文本和一些图像。我需要截图并分享。我已经成功拍摄了屏幕截图,但是图像尺寸太小,无法阅读文本。需要高分辨率的屏幕截图。

屏幕截图代码:

private void shareImageUri(Uri uri){
        Intent intent = new Intent(android.content.Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setType("image/png");
        startActivity(intent);
    }

    private void shareBitmapFromView(View view, int height, int width) {
        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);

        Drawable bgDrawable = view.getBackground();

        if (bgDrawable != null)
            bgDrawable.draw(canvas);
        else
            canvas.drawColor(Color.WHITE);
        view.draw(canvas);

        String bitmapPath = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap,"title", null);
        Uri bitmapUri = Uri.parse(bitmapPath);
        shareImageUri(bitmapUri);

    }

这就是我所说的方法:

articleScrollView = findViewById(R.id.articleScrollView);
shareBitmapFromView(articleScrollView, articleScrollView.getChildAt(0).getHeight(), articleScrollView.getChildAt(0).getWidth());

布局文件(如果需要)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Activities.ArticleActivity">


    <RelativeLayout
        android:id="@+id/topBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary">

        <ImageButton
            android:id="@+id/backButton"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:background="@null"
            card_view:srcCompat="@drawable/outline_arrow_back_ios_24" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_centerInParent="true"
            android:layout_margin="20dp"
            android:scaleType="centerInside"
            android:src="@drawable/x01" />
    </RelativeLayout>


    <FrameLayout
        android:id="@+id/video_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/topBar"
        card_view:layout_constraintBottom_toBottomOf="parent"
        card_view:layout_constraintLeft_toLeftOf="parent"
        card_view:layout_constraintRight_toRightOf="parent"
        card_view:layout_constraintTop_toTopOf="parent">

        <!--<VideoView-->
        <!--android:id="@+id/video_view"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="wrap_content" />-->

        <com.google.android.exoplayer2.ui.PlayerView
            android:id="@+id/video_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </FrameLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/video_container"
        android:layout_above="@+id/shareButton"
        android:background="@android:color/white"
        android:orientation="vertical">


        <com.mukti.Utlis.BanglaTextView
            android:id="@+id/videoTitleTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_marginTop="16dp"
            android:text="ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার"
            android:textColor="@android:color/black"
            android:textSize="@dimen/title_size" />

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/video_container"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp">


            <TextView
                android:id="@+id/durationTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:padding="10dp"
                android:background="@color/colorPrimary"
                android:textColor="@android:color/black"
                android:textSize="@dimen/font_size_paragraph" />

            <Button
                android:id="@+id/downloadButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@color/colorAccent"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:text="Download"
                android:textColor="@android:color/white" />

        </RelativeLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/articleContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/video_container">

        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:id="@+id/articleScrollView"
            android:layout_height="wrap_content">

            <android.support.v7.widget.CardView
                android:id="@+id/card_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                card_view:cardCornerRadius="2dp">


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/sc"
                    android:layout_gravity="center"
                    android:orientation="vertical">

                    <ImageView
                        android:id="@+id/iconView"
                        android:layout_width="match_parent"
                        android:layout_height="120dp"
                        android:layout_centerVertical="true"
                        android:scaleType="centerCrop"
                        android:src="@drawable/article" />

                    <com.mukti.Utlis.BanglaTextView
                        android:id="@+id/titleTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="10dp"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_marginTop="10dp"
                        android:text="ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার"
                        android:textColor="@android:color/black"
                        android:textSize="@dimen/title_size"
                        android:textStyle="bold" />

                    <LinearLayout
                        android:layout_width="100dp"
                        android:layout_height="5dp"
                        android:layout_marginLeft="10dp"
                        android:background="@color/colorAccent"></LinearLayout>


                    <com.mukti.Utlis.BanglaTextView
                        android:id="@+id/descriptionView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="10dp"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_marginTop="10dp"
                        android:text="ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার ভার্চুয়াল ভাইরাসের সর্বনাশা শিকার but"
                        android:textSize="@dimen/font_size_paragraph" />


                </LinearLayout>


            </android.support.v7.widget.CardView>
        </android.support.v4.widget.NestedScrollView>

    </LinearLayout>



    <View
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:layout_below="@+id/topBar"
        android:background="@drawable/shadow" />


    <Button
        android:id="@+id/shareButton"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorAccent"
        android:textColor="@android:color/white"
        android:layout_alignParentBottom="true"
        android:text="@string/app_name"/>

</RelativeLayout>

这就是屏幕截图显示的内容:

Screenshots

1 个答案:

答案 0 :(得分:0)

在第Drawable bgDrawable = view.getBackground();行之后,发送日志bgDrawable.getIntrinsicHeight() bgDrawable.getIntrinsicWidth()canvas.getHeight() canvas.getWidth(),您将看到想要将一个大对象记录为一个小对象。 / p>

我根据图像尺寸得出了这个结论:

width: 92px;
height: 1280px;

您需要正确计算bgDrawable的大小。