Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
771 views
in Technique[技术] by (71.8m points)

android - is there any diff @null Vs #00000000

Is there any difference between @null Vs transparent(#00000000)

in my layout I set android:background"@color/transparent" but its showing some other different background color that I used.

when I used null its working fine.

I want to set @null thru programmatic.

how to do?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

@null means no background at all (View.getBackground() returns null).

#00000000 means that you got a ColorDrawable as the background which has a fully-transparent color.

I didn't look at the code, but I guess that the framework tests if the ColorDrawable is fully transparent and does not draw it in this case. Otherwise you would have some drawing overhead, making @null the faster choice. Both should look identical, so not sure if this is your underlying isse.

To set the equivalent of @null in code, use View.setBackgroundDrawable(null).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...