我正在使用 HTML/CSS 创建 PDF 视图。因此,在某些情况下,我们需要从本地资源文件夹渲染图像。当我们尝试从资源文件夹渲染文件时,图像不显示。如何解决这个问题?
iOS 屏幕截图:
完整源代码:
RenderHtml.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:io';
import 'package:flutter_full_pdf_viewer/flutter_full_pdf_viewer.dart';
import 'package:flutter_html_to_pdf/flutter_html_to_pdf.dart';
import 'package:path_provider/path_provider.dart';
void main() {
runApp(MaterialApp(
home: MyApp(),
));
}
var base64Image = "";
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String generatedPdfFilePath;
@override
void initState() {
super.initState();
generateExampleDocument();
}
Future<void> generateExampleDocument() async {
var htmlContent = """
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px …Run Code Online (Sandbox Code Playgroud) 在尝试为个人资料图片选择图片时,我仅在某些设备中发现了此问题。在模拟器中签入时,这些问题没有出现,但在应用程序的实时版本中,此用户面临此问题。从Firebase崩溃报告中捕获的屏幕截图。请帮助我找出问题所在。
AndroidMenifest.xml
...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
...
Run Code Online (Sandbox Code Playgroud)
SomeActivity.java
private void pickProfilePictureTask() {
Intent intent = null;
if (Build.VERSION.SDK_INT > 19) {
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.addCategory(Intent.CATEGORY_OPENABLE);
} else {
intent = new Intent(Intent.ACTION_GET_CONTENT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
intent.setType("image/*");
startActivityForResult(intent, IMAGE_PICKER_REQUEST);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == IMAGE_PICKER_REQUEST && resultCode == Activity.RESULT_OK) {
if (data != null) {
/**Getting bitmap
*
* InputStream …Run Code Online (Sandbox Code Playgroud) android file-permissions android-manifest android-permissions document-provider
无法在颤振布局上方创建覆盖飞溅动画。
class AnimateContainer extends StatelessWidget {
final String assetPath;
AnimateContainer(this.assetPath);
@override
Widget build(BuildContext context) {
return Container(
width: 300,
height: 100,
child: Image.asset(
'assets/$assetPath',
),
);
}
}
Run Code Online (Sandbox Code Playgroud) flutter flutter-test flutter-dependencies flutter-layout flutter-animation
PdfImage 需要Uint8List作为参数,但我有ImageProvider。那么我们如何在flutter中将image转为uint8list呢?
var imageProvider = AssetImage('assets/test.jpg');
final image = PdfImage(
pdf.document,
image:???, /// Uint8List required
width: img.width,
height: img.height,
);
Run Code Online (Sandbox Code Playgroud)
现在,当我做出 360 度手势时,图像仅从左向右平滑旋转。
要求的结果:
import 'dart:math';
import 'package:flutter/material.dart';
class RotateImage extends StatefulWidget {
RotateImage({Key key}) : super(key: key); // changed
@override
_RotateImageState createState() => _RotateImageState();
}
class _RotateImageState extends State<RotateImage> {
double finalAngle = 0.0;
@override
Widget build(BuildContext context) {
return _defaultApp(context);
}
_defaultApp(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Single finger Rotate text'), // changed
),
body: Center(
child: Column(
children: <Widget>[
Container(
color: Colors.red,
padding: EdgeInsets.all(10),
margin: EdgeInsets.only(top: 50), …Run Code Online (Sandbox Code Playgroud) transform gesture-recognition flutter flutter-test flutter-layout
GoogleService-Info.plist文件是通过将文件添加到“Runner”选项添加的。所以,它位于 Runner 目录中。
我已经检查了很多堆栈溢出答案,但无法找出问题所在。
我还重新检查 GoogleService-Info.plist 中的 GOOGLE_APP_ID
GoogleService-Info.plist 配置没有问题。
我还将下面的 CFBundleURLTypes 属性添加到 [my_project]/ios/Runner/Info.plist 文件中。
CFBundleURLTypes - CFBundleTypeRole - 编辑器 - CFBundleURLSchemes - com.googleusercontent.apps.861823949799-vc35cprkp249096uujjn0vvnmcvjppkn
问题记录:
2020-07-08 09:57:50.535551+0545 Sefyl [63114:5254473] flutter: Observatory listening on http://127.0.0.1:53595/jh2o62kCyXk=/
2020-07-08 09:57:50.815919+0545 Sefyl [63114:5254485] 6.25.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60501000 started
2020-07-08 09:57:50.851101+0545 Sefyl [63114:5254418] 6.25.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled
2020-07-08 09:57:50.851571+0545 Sefyl [63114:5254418] 6.25.0 - [Firebase/Analytics][I-ACS031025] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to …Run Code Online (Sandbox Code Playgroud) 在这里,这个 renameFile(..) func 在 Android API 30 中工作。但是,它在 Android API 29 中不起作用并显示如下错误:
java.lang.IllegalArgumentException:不允许移动不属于明确定义集合的内容://media/external/file/116
更新-注意:
---开始---
为了使用 sdk-29,我们必须使用 Uri 作为 extUri = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL) 像:
private static Uri extUri = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL);
Run Code Online (Sandbox Code Playgroud)
代替下面的代码。并将MediaStore.Files.FileColumns更新为MediaStore.Downloads
---结束---
Uri extUri = MediaStore.Files.getContentUri(MediaStore.VOLUME_EXTERNAL);
String relativeLocation = Environment.DIRECTORY_DOWNLOADS + File.separator + "AppFolder";
Run Code Online (Sandbox Code Playgroud)
函数重命名文件(...)
boolean renameFile(Context context, String newName, String displayName) {
try {
Long id = getIdFromDisplayName(displayName);
ContentResolver contentResolver = context.getContentResolver();
Uri mUri = ContentUris.withAppendedId(extUri, id);
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Files.FileColumns.IS_PENDING, 1);
contentResolver.update(mUri, contentValues, null, …Run Code Online (Sandbox Code Playgroud) 我想裁剪一个矩形图像文件并使其成为圆形或方形或六边形,并将其保存为本地图像文件。我有一个位图,我想从这个位图中裁剪一个圆形或六边形区域。圆圈外的所有像素都应该是透明的。我怎样才能做到这一点?
我在android平台上发现了类似的问题。但是无法找到真正帮助或指导我在颤振中实现这一目标的好资源。请与我分享实现此结果的想法。
image-processing flutter flutter-test flutter-layout flutter-canvas
更新:
为了保存PDF文件:
在下面的答案部分。
为了保存位图文件:
@RequiresApi(api = Build.VERSION_CODES.Q)
@NonNull
private Uri saveBitmap(@NonNull final Context context, @NonNull final Bitmap bitmap,
@NonNull final Bitmap.CompressFormat format, @NonNull final String mimeType,
@NonNull final String displayName, @Nullable final String subFolder) throws IOException {
String relativeLocation = Environment.DIRECTORY_PICTURES;
if (!TextUtils.isEmpty(subFolder)) {
relativeLocation += File.separator + subFolder;
}
final ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, displayName);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, mimeType);
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, relativeLocation);
final ContentResolver resolver = context.getContentResolver();
OutputStream stream = null;
Uri uri = null;
try {
final Uri contentUri …Run Code Online (Sandbox Code Playgroud) 搜索列表适配器.java
使用 EditText 实现可过滤的 RecyclerView 列表搜索不起作用。请查看此代码。在我的情况下,列表被过滤,但 recyclerView 适配器没有改变,因为列表保持不变。
/**
* Created by Dell on 4/8/2016.
*/
public class SearchListAdapter extends RecyclerView.Adapter<SearchListAdapter.ViewHolder> implements Filterable {
private Context context;
public static ArrayList<ChapterListModel> chapterList;
private List<ChapterListModel> orignalChapterList = new ArrayList<>();
private final List<ChapterListModel> filteredChapterList;
public SearchListAdapter(Context context, ArrayList<ChapterListModel> chapterList) {
this.context = context;
this.chapterList = chapterList;
orignalChapterList = chapterList;
filteredChapterList = new ArrayList<>();
}
@Override
public SearchListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row_chapter_list, parent, false)
);
}
@Override
public void …Run Code Online (Sandbox Code Playgroud) search android filtering android-edittext android-recyclerview
flutter ×6
android ×3
flutter-test ×3
image ×2
java ×2
mediastore ×2
pdf ×2
android-10.0 ×1
assets ×1
dart-html ×1
file-rename ×1
filtering ×1
firebase ×1
flutter-ios ×1
html ×1
info.plist ×1
ios ×1
search ×1
transform ×1