简单来说,我想将一个视图组转换为一个 jpg 图像文件。由于Environment.getExternalStorageDirectory已弃用,我使用此意图Intent.ACTION_CREATE_DOCUMENT
private void createFile(String mimeType, String fileName) {
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_TITLE, fileName);
startActivityForResult(intent, WRITE_REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
在onActivityResult();我得到结果返回的 Uri。
我的问题是getExternalStorage()我会用
Bitmap bitmap = Bitmap.createBitmap(
containerLayout.getWidth(),
containerLayout.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
containerLayout.draw(canvas);
FileOutputStream fileOutupStream = null;
try {
fileOutupStream = new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutupStream);
fileOutupStream.flush();
fileOutupStream.close();
Toast.makeText(this, "saved " + fileName, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this, "something went wrong" + e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
} …Run Code Online (Sandbox Code Playgroud) 我是 Swift 的新手,仍在学习中。我尝试根据布尔变量格式化文本。它与字体大小和样式配合得很好。但它不适用于 .bold() 或 .italic 等样式。知道如何做到这一点吗?我也尝试了ViewModifier,但存在同样的问题。
struct ContentView: View {
@State private var txtFont = false
var body: some View {
VStack{
Spacer()
Button("Toggle the Textproperty") {
self.txtFont.toggle()
}
Spacer()
Text("Hello, World!")
.font(txtFont ? .largeTitle : .none)
.bold()
.italic()
// txtFont ? .bold() : .none <= this line won't work
Spacer()
}
}
}
Run Code Online (Sandbox Code Playgroud)
DefaultPickerStyle我在将选择器的样式从基于布尔决策更改SegmentedPickerStyle为基于布尔决策时遇到同样的问题。我需要这个来让用户界面更加用户友好。
有什么想法如何实现这一点?