android 圖片漸層處理

來源:互聯網
上載者:User

http://stackoverflow.com/questions/8417608/awful-background-image-quality-in-android/8417703#8417703

First of all, make sure that your original image looks good so you're not just getting the problem from there.
Then, in your onCreate() method, do:

code1:

getWindow().setFormat(PixelFormat.RGBA_8888);getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);

And to load your image explicitly as a 32-bit image (RGBA-8888 configuration) add the following where you load your views:

code2:

BitmapFactory.Options options = new BitmapFactory.Options();options.inPreferredConfig = Bitmap.Config.ARGB_8888;Bitmap gradient = BitmapFactory.decodeResource(getResources(), R.drawable.gradient, options);findViewById(R.id.main).setBackgroundDrawable(new BitmapDrawable(gradient));

Comparison between different approaches:(these are all screenshots from the resulting application)

My source images (64 colors to the left, 24 bit to the right):
image1 and image2:

1: Raw 64-color image (image1) set as background from layout XML:

2: The same image (image1), using code1:

3: The same image (image1) using both code1 and code2:

4: image2, loaded with code1 and code2 (in this case the dithering is not really important as both the source and destination use 8 bits per color):

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.