上传转换(从布局)和不保存在内部存储,图像到firebase换句话说,上传< linearlayout>作为图像安卓工作室

kqqjbcuj  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(254)

此项目的视频
我创建了一个带有背景(png)图片和编辑文本的imageview。所以它们都在linerlayout中,所以如果我在edittext中输入值,我会得到一个完全不同的图像。我这样做是因为linearlayout表示“信用卡”(作为imageview的backround)和不同的值(作为edittext中的值)。
我能够将linearlayout转换成带有位图的图像,因此每次我通过按preview在edittext中输入不同用户的值时,我都会生成一张用户信用卡。
问题是,现在我想上传到我的firebase的具体形象。我已经添加了依赖项,并尝试从本地实习生内存中上传一些随机图片,但我还没有想到如何将转换后的图像(实际上是普通图像)上传到firebase中,而不必将图像存储到我的内部存储器中。
我尝试将从内存上传的内容与实际的转换图像类结合起来,但是这个过程需要uri,而(转换的linearlayout)图像没有uri。
这是我的java类:

  1. public class DashboardAddBanking extends AppCompatActivity {
  2. EditText e1, e2, e3, e4, e5, e6, e7, e8, e9;
  3. TextView t1, t2, t3, t4, t5, t6;
  4. Button preview, save;
  5. ImageView credit_card, imgResultImage;
  6. RelativeLayout layout_view;
  7. Bitmap image;
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_dashboard_add_banking);
  12. e1 = (EditText) findViewById(R.id.et1); //Code 1
  13. e2 = (EditText) findViewById(R.id.et2); //Code 2
  14. e3 = (EditText) findViewById(R.id.et3); //Code 3
  15. e4 = (EditText) findViewById(R.id.et4); //Code 4
  16. e5 = (EditText) findViewById(R.id.et5); //name
  17. e6 = (EditText) findViewById(R.id.et6); //month
  18. e7 = (EditText) findViewById(R.id.et7); //year
  19. e8 = (EditText) findViewById(R.id.et8); //cvv
  20. e9 = (EditText) findViewById(R.id.et9); //bank name
  21. t1 = (TextView) findViewById(R.id.card_number);
  22. t2 = (TextView) findViewById(R.id.card_holder);
  23. t3 = (TextView) findViewById(R.id.month);
  24. t4 = (TextView) findViewById(R.id.year);
  25. t5 = (TextView) findViewById(R.id.cvv);
  26. t6 = (TextView) findViewById(R.id.bankname);
  27. preview = (Button) findViewById(R.id.btn_preview_credit_card);
  28. save = (Button) findViewById(R.id.btn_save_credit_card);
  29. credit_card = findViewById(R.id.credit_card);
  30. imgResultImage = findViewById(R.id.imgResultImage);
  31. layout_view = findViewById(R.id.rl1);
  32. //Preview card
  33. preview.setOnClickListener(new View.OnClickListener() {
  34. @Override
  35. public void onClick(View v) {
  36. Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_down);
  37. RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rl1);
  38. relativeLayout.setAnimation(animation);
  39. String code1, code2, code3, code4;
  40. String name, month, year, cvv, bankname;
  41. code1 = e1.getText().toString();
  42. code2 = e2.getText().toString();
  43. code3 = e3.getText().toString();
  44. code4 = e4.getText().toString();
  45. t1.setText(code1 + "\t" + code2 + "\t" + code3 + "\t" + code4 + "\t");
  46. name = e5.getText().toString();
  47. t2.setText(name);
  48. month = e6.getText().toString();
  49. t3.setText(month);
  50. year = e7.getText().toString();
  51. t4.setText(year);
  52. cvv = e8.getText().toString();
  53. t5.setText(cvv);
  54. bankname = e9.getText().toString();
  55. t6.setText(bankname);
  56. }
  57. });
  58. //Convert layout to image
  59. save.setOnClickListener(new View.OnClickListener() {
  60. @Override
  61. public void onClick(View v) {
  62. image = getBitmapFromView(layout_view);
  63. imgResultImage.setImageBitmap(image);
  64. }
  65. });
  66. }
  67. private Bitmap getBitmapFromView(View view) {
  68. //Define a bitmap with the same size as the view
  69. Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
  70. //Bind a canvas to it
  71. Canvas canvas = new Canvas(returnedBitmap);
  72. //Get the view's background
  73. Drawable bgDrawable = view.getBackground();
  74. if (bgDrawable != null) {
  75. //has background drawable, then draw it on the canvas
  76. bgDrawable.draw(canvas);
  77. } else {
  78. //does not have background drawable, then draw white background on the canvas
  79. canvas.drawColor(Color.WHITE);
  80. }
  81. // draw the view on the canvas
  82. view.draw(canvas);
  83. //return the bitmap
  84. return returnedBitmap;
  85. }
  86. }

这是我的xml文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".dashboard.banking.DashboardAddBanking">
  8. <RelativeLayout
  9. android:id="@+id/rl1"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:layout_marginTop="70dp"
  13. android:gravity="center"
  14. >
  15. <ImageView
  16. android:id="@+id/credit_card"
  17. android:layout_width="335dp"
  18. android:layout_height="185dp"
  19. android:background="@drawable/credit_card"
  20. />
  21. <TextView
  22. android:id="@+id/bankname"
  23. android:layout_width="wrap_content"
  24. android:layout_height="wrap_content"
  25. android:text="Bank name"
  26. android:textStyle="bold"
  27. android:textSize="15sp"
  28. android:textColor="@color/white"
  29. android:layout_marginTop="20dp"
  30. android:layout_marginStart="40dp"
  31. />
  32. <TextView
  33. android:layout_width="wrap_content"
  34. android:layout_height="wrap_content"
  35. android:text="@string/card_number"
  36. android:textSize="18sp"
  37. android:layout_below="@+id/bankname"
  38. android:textColor="@color/white"
  39. android:layout_marginTop="20dp"
  40. android:layout_marginStart="40dp"
  41. android:id="@+id/card_number"
  42. />
  43. <TextView
  44. android:layout_width="wrap_content"
  45. android:layout_height="wrap_content"
  46. android:text="Cardholder"
  47. android:textSize="15sp"
  48. android:layout_below="@+id/card_number"
  49. android:textColor="@color/white"
  50. android:layout_marginTop="20dp"
  51. android:layout_marginStart="40dp"
  52. android:id="@+id/card_holder"
  53. />
  54. <LinearLayout
  55. android:id="@+id/ll1"
  56. android:layout_width="wrap_content"
  57. android:layout_height="wrap_content"
  58. android:layout_toEndOf="@+id/card_holder"
  59. android:layout_below="@+id/card_number"
  60. android:layout_marginTop="20dp"
  61. android:layout_marginStart="40dp"
  62. android:orientation="vertical"
  63. >
  64. <TextView
  65. android:id="@+id/month"
  66. android:layout_width="wrap_content"
  67. android:layout_height="wrap_content"
  68. android:text="06"
  69. android:textColor="@android:color/white"
  70. android:textSize="15sp"/>
  71. <TextView
  72. android:id="@+id/mm"
  73. android:layout_width="wrap_content"
  74. android:layout_height="wrap_content"
  75. android:text="MM"
  76. android:textColor="@android:color/white"
  77. android:textSize="12sp"/>
  78. </LinearLayout>
  79. <TextView
  80. android:id="@+id/div"
  81. android:layout_width="wrap_content"
  82. android:layout_height="wrap_content"
  83. android:layout_toEndOf="@+id/ll1"
  84. android:layout_below="@+id/card_number"
  85. android:layout_marginTop="20dp"
  86. android:layout_marginStart="5dp"
  87. android:text="/"
  88. android:textColor="@color/white"
  89. android:textSize="15sp"
  90. />
  91. <LinearLayout
  92. android:id="@+id/ll2"
  93. android:layout_width="wrap_content"
  94. android:layout_height="wrap_content"
  95. android:layout_toEndOf="@+id/div"
  96. android:layout_below="@+id/card_number"
  97. android:layout_marginTop="20dp"
  98. android:layout_marginStart="10dp"
  99. android:orientation="vertical"
  100. >
  101. <TextView
  102. android:id="@+id/year"
  103. android:layout_width="wrap_content"
  104. android:layout_height="wrap_content"
  105. android:text="21"
  106. android:textColor="@android:color/white"
  107. android:textSize="15sp"/>
  108. <TextView
  109. android:id="@+id/yy"
  110. android:layout_width="wrap_content"
  111. android:layout_height="wrap_content"
  112. android:text="YY"
  113. android:textColor="@android:color/white"
  114. android:textSize="12sp"/>
  115. </LinearLayout>
  116. <TextView
  117. android:layout_width="wrap_content"
  118. android:layout_height="wrap_content"
  119. android:text="CVV"
  120. android:layout_toEndOf="@id/ll2"
  121. android:layout_marginTop="20dp"
  122. android:layout_marginStart="20dp"
  123. android:layout_below="@id/card_number"
  124. android:textColor="@android:color/white"
  125. android:textSize="15sp"/>
  126. <TextView
  127. android:id="@+id/cvv"
  128. android:layout_width="wrap_content"
  129. android:layout_height="wrap_content"
  130. android:text=" - - -"
  131. android:layout_toEndOf="@id/ll2"
  132. android:layout_marginTop="40dp"
  133. android:layout_marginStart="20dp"
  134. android:layout_below="@id/card_number"
  135. android:textColor="@android:color/white"
  136. android:textSize="12sp"/>
  137. </RelativeLayout>
  138. <RelativeLayout
  139. android:layout_width="match_parent"
  140. android:layout_height="wrap_content"
  141. android:id="@+id/rl2"
  142. android:layout_below="@+id/rl1"
  143. android:layout_marginTop="50dp">
  144. <TextView
  145. android:layout_width="wrap_content"
  146. android:layout_height="wrap_content"
  147. android:text="16 digit number"
  148. android:layout_marginStart="20dp"
  149. android:textColor="@color/primaryText"
  150. android:textSize="12sp"
  151. android:id="@+id/tv1"/>
  152. <EditText
  153. android:id="@+id/et1"
  154. android:layout_width="wrap_content"
  155. android:layout_height="wrap_content"
  156. android:hint="XXXX"
  157. android:inputType="number"
  158. android:maxLength="4"
  159. android:layout_marginStart="20dp"
  160. android:layout_marginTop="15dp"
  161. android:textColorHint="@color/mainText"/>
  162. <EditText
  163. android:id="@+id/et2"
  164. android:layout_toEndOf="@+id/et1"
  165. android:layout_width="wrap_content"
  166. android:layout_height="wrap_content"
  167. android:hint="XXXX"
  168. android:inputType="number"
  169. android:maxLength="4"
  170. android:layout_marginStart="25dp"
  171. android:layout_marginTop="15dp"
  172. android:textColorHint="@color/mainText"/>
  173. <EditText
  174. android:id="@+id/et3"
  175. android:layout_toEndOf="@+id/et2"
  176. android:layout_width="wrap_content"
  177. android:layout_height="wrap_content"
  178. android:hint="XXXX"
  179. android:inputType="number"
  180. android:maxLength="4"
  181. android:layout_marginStart="25dp"
  182. android:layout_marginTop="15dp"
  183. android:textColorHint="@color/mainText"/>
  184. <EditText
  185. android:id="@+id/et4"
  186. android:layout_toEndOf="@+id/et3"
  187. android:layout_width="wrap_content"
  188. android:layout_height="wrap_content"
  189. android:hint="XXXX"
  190. android:inputType="number"
  191. android:maxLength="4"
  192. android:layout_marginStart="25dp"
  193. android:layout_marginTop="15dp"
  194. android:textColorHint="@color/mainText"/>
  195. <TextView
  196. android:layout_width="wrap_content"
  197. android:layout_height="wrap_content"
  198. android:text="Cardholder Name"
  199. android:id="@+id/tv2"
  200. android:layout_below="@id/et1"
  201. android:layout_marginStart="20dp"
  202. android:layout_marginTop="30dp"
  203. android:textColor="@color/primaryText"
  204. android:textSize="12sp"/>
  205. <EditText
  206. android:layout_width="wrap_content"
  207. android:layout_height="wrap_content"
  208. android:hint="Card holder"
  209. android:id="@+id/et5"
  210. android:layout_below="@+id/tv2"
  211. android:layout_marginStart="20dp"
  212. android:textColorHint="@color/mainText"/>
  213. <TextView
  214. android:layout_width="wrap_content"
  215. android:layout_height="wrap_content"
  216. android:text="Expire"
  217. android:id="@+id/tv3"
  218. android:layout_below="@id/et5"
  219. android:layout_marginStart="20dp"
  220. android:layout_marginTop="30dp"
  221. android:textColor="@color/primaryText"
  222. android:textSize="12sp"/>
  223. <EditText
  224. android:id="@+id/et6"
  225. android:layout_width="wrap_content"
  226. android:layout_height="wrap_content"
  227. android:hint="MM"
  228. android:inputType="number"
  229. android:maxLength="2"
  230. android:layout_below="@+id/tv3"
  231. android:layout_marginStart="20dp"
  232. android:textColorHint="@color/mainText"/>
  233. <EditText
  234. android:id="@+id/et7"
  235. android:layout_width="wrap_content"
  236. android:layout_height="wrap_content"
  237. android:layout_toEndOf="@+id/et6"
  238. android:hint="YY"
  239. android:inputType="number"
  240. android:maxLength="2"
  241. android:layout_below="@+id/tv3"
  242. android:layout_marginStart="20dp"
  243. android:textColorHint="@color/mainText"/>
  244. <TextView
  245. android:id="@+id/tv4"
  246. android:layout_width="wrap_content"
  247. android:layout_height="wrap_content"
  248. android:text="CVV"
  249. android:layout_below="@id/et6"
  250. android:layout_marginStart="20dp"
  251. android:layout_marginTop="30dp"
  252. android:textColor="@color/primaryText"
  253. android:textSize="12sp"/>
  254. <EditText
  255. android:id="@+id/et8"
  256. android:layout_width="wrap_content"
  257. android:layout_height="wrap_content"
  258. android:hint="XXX"
  259. android:inputType="number"
  260. android:maxLength="3"
  261. android:layout_below="@+id/tv4"
  262. android:layout_marginStart="20dp"
  263. android:textColorHint="@color/mainText"/>
  264. <TextView
  265. android:id="@+id/tv5"
  266. android:layout_width="wrap_content"
  267. android:layout_height="wrap_content"
  268. android:text="Bank name"
  269. android:layout_below="@id/et6"
  270. android:layout_toEndOf="@+id/tv4"
  271. android:layout_marginStart="200dp"
  272. android:layout_marginTop="30dp"
  273. android:textColor="@color/primaryText"
  274. android:textSize="12sp"/>
  275. <EditText
  276. android:id="@+id/et9"
  277. android:layout_width="wrap_content"
  278. android:layout_height="wrap_content"
  279. android:layout_toEndOf="@+id/et8"
  280. android:hint="Your Bank"
  281. android:layout_below="@+id/tv5"
  282. android:layout_marginStart="180dp"
  283. android:textColorHint="@color/mainText"/>
  284. </RelativeLayout>
  285. <Button
  286. android:id="@+id/btn_preview_credit_card"
  287. android:layout_width="wrap_content"
  288. android:layout_height="wrap_content"
  289. android:layout_below="@+id/rl2"
  290. android:layout_alignParentStart="true"
  291. android:layout_marginStart="50dp"
  292. android:layout_marginTop="20dp"
  293. android:background="@drawable/button_save_round"
  294. android:text="Preview"
  295. android:textColor="@color/white"
  296. android:textSize="15sp" />
  297. <ImageView
  298. android:id="@+id/imgResultImage"
  299. android:layout_width="100dp"
  300. android:layout_height="60dp"
  301. android:layout_toEndOf="@+id/btn_preview_credit_card"
  302. android:layout_below="@+id/rl2"
  303. android:layout_marginTop="20dp"
  304. android:layout_marginStart="5dp"/>
  305. <Button
  306. android:id="@+id/btn_save_credit_card"
  307. android:layout_width="wrap_content"
  308. android:layout_height="wrap_content"
  309. android:layout_below="@+id/rl2"
  310. android:layout_alignParentStart="true"
  311. android:layout_alignParentEnd="true"
  312. android:layout_toEndOf="@+id/imgResultImage"
  313. android:layout_marginStart="250dp"
  314. android:layout_marginTop="20dp"
  315. android:layout_marginEnd="50dp"
  316. android:background="@drawable/button_save_round"
  317. android:text="Save"
  318. android:textColor="@color/white"
  319. android:textSize="15sp" />
  320. </RelativeLayout>

你能帮帮我吗?我会非常感激的,因为我现在正试图找到一个想法几天了。此项目的视频

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题