我正在按鈕單擊生成圖像。用於創建圖像的佈局在活動內部當前不可見。矢量圖像是佈局的背景,但我看到的只是黑色圖像。Android - 保存佈局作爲圖像顯示黑色圖像
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="370dp"
android:layout_height="400dp"
android:background="@drawable/ic_background">
<TextView
android:id="@+id/address"
android:layout_width="match_parent"
android:textColor="@color/white"
android:textSize="40sp"
android:textStyle="bold"
android:gravity="center"
android:layout_height="wrap_content"/>
</LinearLayout>
生成圖像
private void generateAndShareImage(){
final LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View view = inflater.inflate(R.layout.image_address, null);
final TextView addressView = (TextView) view.findViewById(R.id.address);
addressView.setText("Test Address");
final Bitmap cardImage = getBitmapFromView(view);
//store image in external storage
String savedImagePath = storeImage(cardImage);
if(savedFilePath != null){
scanGallery(savedImagePath);
}
}
private void scanGallery(final String path) {
try {
MediaScannerConnection.scanFile(getBaseContext(), new String[] { path },null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
}
});
} catch (Exception e) {
Log.e("Error scanning gallery",e.getMessage());
}
}
private Bitmap getBitmapFromView(@NonNull final View view){
final Bitmap bitmap = Bitmap.createBitmap(370, 400, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
有什麼不對?
謝謝,但它仍然無法正常工作。我沒有在背景中看到drawable,也沒有看到文字。只是圖像的顏色現在變了 – Coder
@Coder我更新了我正在使用的工作示例的答案,以查看生成的位圖。可能是你的'storeImage()'代碼的問題。 –