嗨,在下面单击创建 pdf 时,我正在调用方法 create pdf 。单击按钮 pdf 滚动视图已创建。
但是点击创建pdf后什么都没有显示。任何人都可以帮助为什么数据没有在android中显示。文件存在于 android 的外部存储内存中。但数据不存在
谁能帮我解决这个问题。
xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contact_card"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_anchorGravity="center"
app:layout_behavior="@string/appbar_scrolling_view_behavior" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/card_details">
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create PDF" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/cards">
<androidx.cardview.widget.CardView
android:id="@+id/cardView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/slivergray"
app:cardCornerRadius="5dp"
app:cardElevation="4dp"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/White">
<RelativeLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@color/tabs1"
android:gravity="center">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_centerHorizontal="true"
android:textAllCaps="true"
android:paddingTop="10dp"
android:textStyle="bold"
android:text="@string/opportunity_details"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/White"
android:textSize="16sp"/>
<Button
android:id="@+id/close"
style="@style/Base.Widget.AppCompat.Button.Borderless"
android:layout_width="36dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:drawableTint="@color/White"
android:drawableLeft="@drawable/ic_close_black_24dp"
android:textColor="@color/White"
android:textSize="12sp"
android:textStyle="bold" />
</RelativeLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/header"
android:id="@+id/below">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_below="@+id/below"
android:id="@+id/main"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/sales_stages"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:weightSum="4"
android:layout_below="@+id/main">
<TextView
android:id="@+id/text_opp"
style="@style/Base.TextAppearance.AppCompat.Subhead"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/bill_district"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textStyle="bold"
android:text="Sales Stage"
android:layout_weight="2"
android:textColor="@color/gray"
android:textSize="15sp"
/>
<TextView
android:id="@+id/sales_stage"
style="@style/Base.TextAppearance.AppCompat.Subhead"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/text_opp"
android:layout_weight="2"
android:paddingRight="16dp"
android:textColor="@color/gray"
android:textSize="15sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/suject_ids"
android:paddingBottom="10dp"
android:layout_below="@+id/sales_stages"
android:weightSum="4"
android:paddingTop="10dp">
</LinearLayout>
</FrameLayout>
</RelativeLayout>
爪哇:
create_pdf.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("size"," "+linearLayout.getWidth() +" "+linearLayout.getWidth());
bitmap = loadBitmapFromView(linearLayout, linearLayout.getWidth(), linearLayout.getHeight());
createPdf();
}
});
private void createPdf(){
WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
// Display display = wm.getDefaultDisplay();
DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
float hight = displaymetrics.heightPixels ;
float width = displaymetrics.widthPixels ;
int convertHighet = (int) hight, convertWidth = (int) width;
// Resources mResources = getResources();
///Bitmap bitmap = BitmapFactory.decodeResource(mResources, R.drawable.gen_logo);
PdfDocument document = new PdfDocument();
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(convertWidth, convertHighet, 1).create();
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
canvas.drawPaint(paint);
// bitmap = Bitmap.createScaledBitmap(bitmap, convertWidth, convertHighet, true);
paint.setColor(Color.BLUE);
// canvas.drawBitmap(bitmap, 0, 0 , null);
document.finishPage(page);
// write the document content
String targetPdf = "/sdcard/pdffromScroll.pdf";
File filePath;
filePath = new File(targetPdf);
try {
document.writeTo(new FileOutputStream(filePath));
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getContext(), "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show();
}
// close the document
document.close();
Toast.makeText(getContext(), "PDF of Scroll is created!!!", Toast.LENGTH_SHORT).show();
openGeneratedPDF();
}
private void openGeneratedPDF(){
File file = new File("/sdcard/pdffromScroll.pdf");
if (file.exists())
{
Intent intent=new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(file);
intent.setDataAndType(uri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivity(intent);
}
catch(ActivityNotFoundException e)
{
Toast.makeText(getContext(), "No Application available to view pdf", Toast.LENGTH_LONG).show();
}
}
}