Android studio Android Studio生成的PDF未正确显示可绘制内容
我正在尝试在我的Android Studio应用程序中生成PDF文件。大部分情况下,它工作正常,但我有一个问题,即抽屉没有出现。我不确定它们是否根本没有出现,或者它们是否以白色显示。我试过把颜色改成黑色,但没用。我不知道这是我做错了什么,还是一个已知的问题。还有谁见过它吗 PDF是这样生成的:Android studio Android Studio生成的PDF未正确显示可绘制内容,android-studio,pdf,android-drawable,Android Studio,Pdf,Android Drawable,我正在尝试在我的Android Studio应用程序中生成PDF文件。大部分情况下,它工作正常,但我有一个问题,即抽屉没有出现。我不确定它们是否根本没有出现,或者它们是否以白色显示。我试过把颜色改成黑色,但没用。我不知道这是我做错了什么,还是一个已知的问题。还有谁见过它吗 PDF是这样生成的: // Create PDF document PdfDocument document = new PdfDocument(); // Create page description PdfDocumen
// Create PDF document
PdfDocument document = new PdfDocument();
// Create page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(content.getWidth(), content.getHeight(), 1).create();
// Start first page - pattern details and chart
PdfDocument.Page page = document.startPage(pageInfo);
content.draw(page.getCanvas());
// Finish page
document.finishPage(page);
String drawableName = "kps_" + thisSymbol.getSymbolBaseName();
final int resourceId = resources.getIdentifier(drawableName, "drawable", context.getPackageName());
Drawable d;
if(resourceId != 0) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
d = resources.getDrawable(resourceId, context.getTheme());
} else {
d = resources.getDrawable(resourceId);
}
thisCell.setDrawable(d);
}
Cell类的onDraw函数是:
protected void onDraw(Canvas canvas) {
float height = canvas.getHeight();
float width = canvas.getWidth();
paint.setColor(0xff000000);
paint.setStrokeWidth(1);
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(1, 1, width-1, height-1, paint);
// Drawable has been set up already, as listed below
if(drawable != null) {
int b_width = (int) (width - 1);
int b_height = (int) (height - 1);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (mode == MODE_KEY) drawable.setTint(Color.BLACK);
}
drawable.setBounds(1, 1, b_width, b_height);
drawable.draw(canvas);
}
}
可牵引装置的设置如下:
// Create PDF document
PdfDocument document = new PdfDocument();
// Create page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(content.getWidth(), content.getHeight(), 1).create();
// Start first page - pattern details and chart
PdfDocument.Page page = document.startPage(pageInfo);
content.draw(page.getCanvas());
// Finish page
document.finishPage(page);
String drawableName = "kps_" + thisSymbol.getSymbolBaseName();
final int resourceId = resources.getIdentifier(drawableName, "drawable", context.getPackageName());
Drawable d;
if(resourceId != 0) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
d = resources.getDrawable(resourceId, context.getTheme());
} else {
d = resources.getDrawable(resourceId);
}
thisCell.setDrawable(d);
}
行“thisCell.setDrawable(d)”用于将drawable传递给Cell类;这也会使单元格无效,导致其重新绘制
有什么建议吗?还是有更好的方法