Câu hỏi Đặt nền trong suốt của một lần xem hình ảnh trên Android


Tôi đang sử dụng chế độ xem web, trong đó tôi đang thêm chế độ xem hình ảnh. Làm cách nào để tôi có thể đặt nền của chế độ xem hình ảnh này thành minh bạch?

Tôi đã thử điều này:

mImageview.setBackgroundResource(R.color.trans);

Ở đâu trans → <color name="trans">#00000000 </color>.


247
2017-09-29 13:27


gốc


Điều này có thể giúp bạn: stackoverflow.com/questions/5445085/… - Martin Stanimirov


Các câu trả lời:


Trong tập hợp XML của bạn Background cho bất kỳ màu nào, White(#FFFFFF) bóng râm hoặc Black(#000000) bóng râm. Nếu bạn muốn minh bạch, chỉ cần đặt 80 trước mã băm thực tế:

#80000000

Điều này sẽ thay đổi bất kỳ màu nào bạn muốn một màu trong suốt .. :)


478
2017-07-29 12:50



@ Harshad: Có thể đặt, nói, độ trong suốt 40% cho một hình nền được đặt bằng View.setBackgroundResource(R.drawable.something)? - Luis A. Florit
@ LuisA.Florit Tôi tìm thấy liên kết này, nơi bạn cần nhân với 0,4 (40/100) với giá trị RGB của bạn. Không chắc chắn nếu điều này là hữu ích, nhưng bạn có thể cho nó một thử. forums.esri.com/Thread.asp?c=93&f=1730&t=223940 - Harshad
@Harshad: Xin lỗi, tôi không hiểu câu trả lời của bạn. Tôi không có bất kỳ giá trị RGB nào, nhưng một TextView có hình nền mà tôi muốn, nói, trong suốt 50%. Nhưng, dù sao, tôi tìm thấy câu trả lời ở đây trong stackoverflow: View.getBackground().setAlpha(50). Không thể đơn giản hơn, phải không? : o) Dù sao, cảm ơn sự giúp đỡ của bạn !! - Luis A. Florit
Nếu bạn thêm bất kỳ số nào từ 01 đến 99 trước mã băm thực tế, nó sẽ cho bạn độ trong suốt. Ví dụ: Màu đen với độ trong suốt hơn - #10000000     Màu đen với độ trong suốt ít hơn - #99000000 - AnhSirk Dasarp
@AnhSirkDasarp Không chỉ từ 01 đến 99, vì phần còn lại của các con số này cũng là hệ thập lục phân để bạn có thể đặt bất kỳ thứ gì từ 00 đến ff. Đối với năm mươi phần trăm trong suốt, bạn nên đặt 80 thay vì 50, và cho những người khác bạn có một số tính toán cơ bản để làm ... - Nemanja Kovacevic


Bạn có thể đặt nền trong suốt của bất kỳ bố cục, bất kỳ chế độ xem nào hoặc bất kỳ thành phần nào bằng cách thêm mã này vào XML:

android:background="@android:color/transparent" 

457
2018-03-10 12:31



Tôi gặp sự cố trên các phiên bản Android cũ hơn không xử lý # ff000000 như trong suốt thuần túy. Sử dụng nó cố định. - loeschg
Có lẽ vì #FF 00 00 00 = 100% màu đen. - Derk-Jan
@Ioeschg 2 chữ cái đầu tiên dành cho kênh alpha. # 00xxxxxx sẽ trong suốt, trong khi x là bất kỳ giá trị hex nào bạn muốn. - user1032613
Và tương đương theo chương trình nếu ai đó quan tâm là Android.Resource.Color.Transparent :) - leoneboaventura
@undroid try android:background="#00ffffff" - ban-geoengineering


Ngoài những gì Harshad đã đề cập:

Hai ký tự thập lục phân có thể được thêm vào bất kỳ mã màu hệ thập lục phân nào. Hai ký tự đầu tiên trong mã màu hex gồm 8 chữ số biểu thị độ mờ của nó trong Android.

Hai ký tự thập lục phân có thể nằm trong khoảng từ 00 đến FF. Ví dụ,

  • Bình thường đục màu đen hex- "# 000000"
  • Hoàn toàn minh bạch - "# 00000000"
  • Hoàn toàn mờ đục - "# FF000000"
  • 50% trong suốt - "# 7F000000"

Bằng cách này, bạn có thể thay đổi bất kỳ màu nào thành bất kỳ mức độ minh bạch nào.

Để tìm tiền tố thập lục phân từ phần trăm:

Chia số phần trăm cho 100 và nhân với 255 để lấy giá trị thập phân. Chuyển đổi số thập phân sang thập lục phân đây.

Ví dụ: 50%, 50/100 * 255 = 127. Sử dụng liên kết, chúng tôi nhận được giá trị thập lục phân 7F.

Nguồn: Android: cách tạo nền trong suốt hoặc mờ


153
2017-10-26 07:44



trên thực tế, độ trong suốt 50% hoàn hảo là 7F chứ không phải 80;) - shinyuX
Cảm ơn. Đã chỉnh sửa bài đăng. - Aaron


Nếu bạn muốn thêm độ trong suốt 20% hoặc 30%, bạn nên thêm hai ký tự nữa vào mã thập lục phân, như CC.

chú thích

android:background="#CCFF0088" trong XML

trong đó CC là giá trị alpha, FF là hệ số màu đỏ, 00 là hệ số xanh, và 88 là hệ số xanh.

Một số mã mờ:

Giá trị độ mờ hex

100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5%  — 0D
0% —  00

Bạn cũng có thể đặt độ mờ theo chương trình như:

yourView.getBackground().setAlpha(127);

Đặt độ mờ giữa 0 (hoàn toàn trong suốt) thành 255 (hoàn toàn mờ đục). 127,5 chính xác là 50%.

Bạn có thể tạo bất kỳ mức độ minh bạch nào bằng cách sử dụng công thức đã cho. Nếu bạn muốn nửa trong suốt:

 16 |128          Where 128 is the half of 256.
    |8 -0         So it means 80 is half transparent.

Và để minh bạch 25%:

16 |64            Where 64 is the quarter of 256.
   |4 -0          So it means 40 is quarter transparent.

103
2018-03-03 08:26





Đã có một hằng số được xác định trước. Sử dụng Color.TRANSPARENT.


23
2018-03-20 09:01



Sử dụng một hằng số nên là cách tốt nhất / sạch nhất để đi về nó! Nhưng trong trường hợp này, giá trị của Color.TRANSPARENT được đặt thành 0x00000000 (không phải là dự kiến ​​hoàn toàn mờ đục 0xFF000000), do đó, tùy thuộc vào cách bạn đi về nó, hằng số này có thể không thực sự giúp hoàn thành minh bạch! Vẫn +1 để giới thiệu một hằng số! - Levit


Sử dụng mã dưới đây cho màu đen:

<color name="black">#000000</color>

Bây giờ nếu bạn muốn sử dụng độ mờ thì bạn có thể sử dụng mã dưới đây:

<color name="black">#99000000</color>

Và dưới đây cho mã opacity:

100% - FF

95% - F2

90% - E6

85% - D9

80% - CC

75% - BF

70% - B3

65% - A6

60% - 99

55% - 8C

50% - 80

45% - 73

40% - 66

35% - 59

30% - 4D

25% - 40

20% - 33

15% - 26

10% - 1A

5% - 0D

0% - 00


23
2018-05-19 12:51





Đã có một minh bạch được xây dựng trong Android: R.color.transparent. http://developer.android.com/reference/android/R.color.html#transparent

Nhưng tôi nghĩ bạn có thể muốn tạo nền của hình ảnh mà bạn đang đặt vào trong WebView trong suốt, ví dụ, với PNG trong suốt, chứ không phải là nền ImageView. Nếu hình ảnh thực tế không phải là ở tất cả xem qua thì nền ImageView không thể được nhìn thấy thông qua nó.


19
2017-09-30 14:52



hình ảnh là minh bạch .. nó didnt hav bất kỳ background..i hv cũng đã cố gắng thiết lập nền imageview như u hv said..but nó didnt work ... plz help .. - mudit
Bạn có thể đăng một số chi tiết khác như liên kết tới hình ảnh bạn đang sử dụng và mã và bố cục bạn đang sử dụng không? - Intrications


Trong trường hợp bạn muốn nó trong mã, chỉ cần:

mComponentName.setBackgroundColor(Color.parseColor("#80000000"));

15
2018-05-31 13:07



Điều đó làm cho nó màu xám. - Igor Ganapolsky


sử dụng mã này cho màu trong suốt

android:background="@android:color/transparent" 

12
2018-02-16 13:40



Điều này giống với câu trả lời được bình chọn cao thứ hai. - Yunnosch


Hoặc, thay thế, phân tích cú pháp ID tài nguyên bằng mã sau:

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));

7
2017-08-10 06:22





Đối với những người vẫn còn phải đối mặt với vấn đề này, bạn có thể thử điều này
element.getBackground().setAlpha(0);


6
2017-08-01 02:47



Tôi nhận được một NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setAlpha(int)' on a null object reference - Igor Ganapolsky
@IgorGanapolsky: cố gắng xem element xem nếu nó là một đối tượng null - Isaac Lem