导航:首页 > 源码编译 > android图片缩放算法

android图片缩放算法

发布时间:2025-09-22 11:47:49

android镄.9锲惧埗浣

鍏堟潵璁よ瘑涓涓嬬晫闱锛屽苟鍙浠ョ湅鍒颁笉绠℃槸妯绾靛悜𨰾夊崌閮戒娇寰楀浘鐗囧け鐪

涓嬮溃锲涗釜灏忛夐”鍒嗗埆鏄

浠庝笂锲炬垜浠鍙浠ョ湅鍒帮纴涓嶅瑰浘鐗囱繘琛屼换浣曚慨鏀癸纴锲剧墖鍦ㄦ煇涓鏂瑰悜𨰾変几镞堕兘鏄鏁翠綋缂╂斁镄. 缂╂斁钖屾椂,锲剧墖鍦呜掍篃浼氲窡镌缂╂斁,瀵艰嚧链缁埚𪾢绀烘晥鏋滃緢宸.

鍦ㄧ紪杈戝尯鍙浠ョ湅鍒拌佺紪杈戠殑锲剧墖锲涘懆澶氢简涓镀忕礌镄勫唴瀹癸纴杩椤氨鏄鎴戜滑鍙浠ユ搷浣灭殑鍖哄烟浜嗐
缁桦埗灏忛粦镣 锛氩彧闇瑕佸湪锲涜竟闇瑕佺殑浣岖疆宸﹂敭鍗曞嚮缁桦埗灏忛粦镣癸纴鎴栬呮嫋锷ㄧ粯鍒跺皬榛戠嚎锛埚叾瀹炴槸杩炵画镄勫氢釜灏忛粦镣癸级
鍒犻櫎灏忛粦镣 锛氭寜shift阌锛屽苟宸﹂敭鍗曞嚮鎴栨嫋锷ㄨ繘琛屽垹闄ゆ搷浣滐纴涔熷彲浠ユ寜浣忛紶镙囧彸阌杩涜屾摝闄ゃ

灏忛粦镣瑰湪png锲炬渶澶栧眰链変竴镀忕礌瀹界殑杈癸纴闄や简锲涗釜椤惰掞纴灏忛粦镣瑰彲浠ョ粯鍒跺湪png链澶栬竟镄勪换涓镣瑰勶纴
姣忎釜灏忛粦镣瑰崰鎹涓镀忕礌
灏忛粦镣圭粯鍒朵箣钖庛傚叾瑙勫畾涓涓鍖哄烟锛屽嵆灏忛粦镣瑰勶纴鍨傜洿浜庢墍鍦ㄨ竟锛屼笖涓镀忕礌瀹界殑鍖哄烟

椤堕儴锛氩湪姘村钩𨰾変几镄勬椂鍊欙纴淇濇寔鍏朵粬浣岖疆涓嶅姩锛屽彧鍦ㄨ繖涓镣逛唬琛ㄥ尯锘熷仛镞犻檺镄勫欢浼
宸﹁竟锛氩湪绔栫洿𨰾変几镄勬椂鍊欙纴淇濇寔鍏朵粬浣岖疆涓嶅姩锛屽彧鍦ㄨ繖涓镣逛唬琛ㄥ尯锘熷仛镞犻檺镄勫欢浼
搴曢儴锛氩湪姘村钩𨰾変几镄勬椂鍊欙纴鎸囧畾锲剧墖閲岀殑鍐呭规樉绀虹殑鍖哄烟
鍙宠竟锛氩湪绔栫洿𨰾変几镄勬椂鍊欙纴鎸囧畾锲剧墖閲岀殑鍐呭规樉绀虹殑鍖哄烟

浠庝笂锲惧彲浠ョ湅鍑烘媺浼稿悗鎴戜滑甯屾湜镄勭澶村尯锘熸病链夊け鐪燂纴骞朵笖钥屼笖绠澶磋窛绂诲彸杈硅窛涓庝笂杈硅窛镄勮窛绂绘病链夊彉锲犳わ纴淇濊瘉浜嗘兂瑕侀儴鍒嗕笉澶辩湡

棣栧厛娌℃湁链璐ㄤ笂镄勫尯鍒锛屼笅闱㈤氲繃涓涓渚嫔瓙𨱒ョ悊瑙
锅囧傛湁涓涓5px 5px澶у皬镄勫浘鐗囷纴妯钖戜笂闇瑕佹媺浼歌呖20px
闾d箞灏辨槸瑕佹í钖戞媺鍗嘓=15px
锅囧傛í钖戜笂鐢讳简涓涓灏忛粦镣--鍒欐疮涓灏忛粦镣规墍浠h〃鍖哄烟𨰾変几h=15px h=H/1
锅囧傛í钖戜笂鐢讳简涓変釜灏忛粦镣--鍒欐疮涓灏忛粦镣规墍浠h〃鍖哄烟𨰾変几h=5px h=H/3
锲犳 姣忔浔杈逛笂镄勬疮涓灏忛粦镣规墍浠h〃鍖哄烟𨰾変几镄勫藉害鏄涓镙风殑 *
镓浠ヨ佸悎鐞嗙殑甯幂疆鎴戜滑镄勫皬锽濈偣浠ヨ呖png锲捐兘澶熻揪鍒版垜浠𨱍宠佺殑鏂瑰悜浼哥缉

镣瑰嚮宸︿笂file- save锛屼缭瀛樻枃浠讹纴镊锷ㄧ敓鎴愪竴寮犲悗缂钖崭负钬*.9.png钬濇牸寮忕殑锲剧墖锛屽浘鐗囦笂涓嫔乏鍙冲悇澧炲姞浜1px镄勯粦绾裤

9patch锲剧墖鏄痑ndriod app寮鍙戦噷涓绉岖壒娈婄殑锲剧墖褰㈠纺锛屾枃浠剁殑镓╁𪾢钖崭负锛.9.png
钬灭偣涔浓濅篃鏄鐢变簬Android骞冲彴澶氱嶅垎杈ㄧ巼闇阃傞厤镄勯渶姹备笅锛屽彂灞曞嚭𨱒ョ殑涓绉岖嫭鐗圭殑鎶链銆傚畠鍙浠ュ皢锲剧墖妯钖戝拰绾靛悜闅忔剰杩涜屾媺浼革纴钥屼缭鐣椤儚绱犵簿缁嗗害銆佹笎鍙樿川镒熷拰鍦呜掔殑铡熷ぇ灏忥纴瀹炵幇澶氩垎杈ㄧ巼涓嬬殑瀹岀编鏄剧ず鏁堟灉锛屽悓镞跺噺灏戜笉蹇呰佺殑锲剧墖璧勬簮锛屽彲璋揿垏锲惧埄鍣ㄣ
.9.PNG纭瀹炴槸镙囧嗳镄凯NG镙煎纺锛屽彧鏄鍦ㄦ渶澶栭溃涓鍦堥濆栧炲姞1px镄勮竟妗嗭纴杩欎釜1px镄勮竟妗嗗氨鏄鐢ㄦ潵瀹氢箟锲剧墖涓鍙镓╁𪾢镄勫拰闱欐佷笉鍙樼殑鍖哄烟銆傜壒鍒璇存槑锛宭eft鍜宼op杈规嗕腑浜ゅ弶閮ㄥ垎鏄鍙𨰾変几閮ㄥ垎锛屾湭阃変腑閮ㄥ垎鏄闱欐佸尯锘熼儴鍒嗐俽ight鍜宐ottom杈规嗕腑浜ゅ弶閮ㄥ垎鍒欐槸鍐呭归儴鍒
镞犺烘槸left鍜宼op锛岃缮鏄痳ight鍜宐ottom閮芥槸鎶婂浘鐗囧垎鎴9鍧 (杈硅掑洓鍧楁槸涓嶈兘缂╂斁镄勶纴鍏朵粬镄勫洓鍧楀垯鏄鍏佽哥缉鏀剧殑)锛屾墍浠ュ彨锅9.PNG銆
.9.png锲剧墖锛宎ndroid绯荤粺绋嫔簭链夊瑰叾浼桦寲镄勭畻娉曘
鍙傝
http://www.jianshu.com/p/3fd048644e3f
http://bbs.itheima.com/thread-251222-1-1.html
http://www.yimui.com/archives/117

❷ 濡备綍鎶婂浘鐗囧帇缂╁埌400k浠ュ唴镓嬫満-镓嬫満镦х墖镐庝箞铡嬬缉鍒300K浠ヤ笅锛

镓嬫満镐庝箞鎶婄収鐗囩缉灏忓埌40k

镓嬫満鎶婄収鐗囩缉灏忓埌40k镄勬柟娉曞备笅:

VIVOZ5

FuntouchOS9.1

Litphoto1.3.4.033.

1銆佹墦寮宸ュ叿,镣瑰嚮铡嬬缉镦х墖镄勯夐”銆

2銆侀変腑镦х墖,镣瑰嚮鍙充笂瑙掔殑瀵瑰彿銆

3銆佺偣鍑诲ぇ灏忕殑阃夐”銆

4銆侀暱鎸変笅锲剧殑鎸夐挳钖戝乏𨰾栧姩銆

5銆佸綋铡嬬缉澶у皬鏄剧ず涓40k浠ヤ笅镞舵涧寮镓嬫寚,镣瑰嚮寮濮嫔帇缂┿

6銆佺収鐗囨垚锷熷湴缂╁皬鍒40k浠ヤ笅銆

镓嬫満镐庝箞铡嬬缉镦х墖澶у皬kb

镓嬫満铡嬬缉镦х墖澶у皬kb镄勬柟娉:

鍑嗗囨潗鏂:vivoNEXA銆丄ndroid10銆丄PP鐗堟湰:v7.1.0.5

1銆佸湪镓嬫満妗岄溃涓婃垒鍒

鏂囦欢绠$悊

骞剁偣鍑昏繘鍏ャ

2銆佹垒鍒版枃浠剁$悊锲剧墖绫绘枃浠,镣瑰嚮杩涘叆钬滃浘鐗団濄

3銆佹墦寮镓闇瑕佺殑铡嬬缉锲剧墖镄

鏂囦欢澶

,闀挎寜绌虹槠浣岖疆銆

4銆侀渶瑕佸帇缂╃殑鍏ㄩ,镣瑰嚮鍙充笅瑙掆滀笁镣光濇洿澶氶夐”銆

5銆侀夋嫨骞剁偣鍑烩滃帇缂┾,瀹屾垚镦х墖铡嬬缉鍗冲彲瀹屾垚銆

镓嬫満镦х墖镐庝箞铡嬬缉鍒300K浠ヤ笅锛

鍙浠ョ敤windows镊甯︾殑钬灭敾锲锯濊皟浣庣収鐗囩殑鍒呜鲸鐜囧拰璐ㄩ噺,杈惧埌缂╁皬镦х墖鏂囦欢浣撶Н镄勭洰镄,鍏蜂綋鏂规硶濡备笅:

1銆佸备笅锲,榧犳爣鍙抽敭鍗曞嚮锲剧墖,鍦ㄥ脊鍑虹殑鍙抽敭凿滃崟涓鍗曞嚮钬灭紪杈戋,杩椤氨鏄鐢ㄢ灭敾锲锯濇墦寮缂栬緫锲剧墖:

2銆侀栧厛灏濊瘯杞鎹㈡牸寮忚揪鍒扮洰镄,jpeg镙煎纺鏄涓绉嶅帇缂╃巼楂樼敾闱㈣川閲忔崯澶卞皯镄勫浘鐗囨牸寮,濡傛灉铡熷浘鐗囦笉鏄痡peg镙煎纺,鍙浠ュ厛灏濊瘯杞涓箦peg镙煎纺銆傛柟娉曞备笅锲,榧犳爣镣瑰嚮钬灭敾锲锯濊蒋浠跺乏涓婅掔殑钃濊壊鎸夐挳,鍦ㄥ𪾢寮镄勪笅𨰾夎彍鍗曚腑镣瑰嚮钬滃彟瀛树负钬浓啋钬淛PEG钬,瀹屾瘯,镆ョ湅钬滃彟瀛树负钬濈敓鎴愮殑鏂板浘鐗,浣撶Н鏄钖︽弧瓒抽渶姹,濡傛灉涓嶆弧瓒,缁х画涓嬮溃绗3姝:

3銆佸备笅锲,鐢诲浘杞浠剁晫闱,镣瑰嚮钬滈吨鏂拌皟鏁村ぇ灏忊:

4銆佸备笅锲,寮瑰嚭璋冩暣澶у皬镄勭獥鍙,镣归夆滃儚绱犫,涓瀹氲佸嬀阃夆滀缭鎸佺旱妯姣斺,钖﹀垯锲惧儚鍙鑳借𨰾夐暱鎴栬呭帇镓,杈揿叆杈冨皬镄勫儚绱,镙规嵁褰揿墠锲剧墖瀹为檯浣撶Н,璋冧绠杩欎釜鐣岄溃涓镀忕礌鍊肩殑10%~50%,璋冭瘯瀹岀偣鍑烩灭‘瀹气濆叧闂杩欎釜绐楀彛,鍐嶆寜鍓嶉溃绗2姝モ滃彟瀛树负钬濆浘鐗,镆ョ湅鏂板浘鐗囩殑浣撶Н,涓嶅熷皬灏遍吨澶岖4姝ョ户缁闄崭绠镀忕礌鍊,鐩村埌婊¤冻瑕佹眰涓烘:

铡嬬缉鏄涓绉嶉氲繃鐗瑰畾镄勭畻娉曟潵鍑忓皬璁$畻链烘枃浠跺ぇ灏忕殑链哄埗銆傝繖绉嶆満鍒舵槸涓绉嶅緢鏂逛究镄勫彂鏄,灏ゅ叾鏄瀵圭绣缁灭敤鎴,锲犱负瀹冨彲浠ュ噺灏忔枃浠剁殑瀛楄妭镐绘暟,浣挎枃浠惰兘澶熼氲繃杈冩参镄勪簰镵旂绣杩炴帴瀹炵幇镟村揩浼犺緭,姝ゅ栬缮鍙浠ュ噺灏戞枃浠剁殑纾佺洏鍗犵敤绌洪棿銆

❸ 设计师如何为Android应用标注尺寸

设计 Android 应用的最佳实践:
1. 画布大小定位 720 x 1280,72 dpi
2. 只使用偶数单位的尺寸,比如 96 px 的列表项高度,16 px 的边距,64 px 的图标边长
3. 只使用 24 pt,28 pt,36 pt 和 44 pt 的字体
4. 设计完成以后,所有尺寸的 px 值除以 2 作为 dp 数值交给工程师
5. 所有字体的 pt 值除以 2 作为 sp 数值交给工程师
6. 所有切图变成三份,分别是原始大小、缩小 1.5 倍,缩小 2 倍,分别作为 xhdpi,hdpi,mdpi 的资源交给工程师

如果你还有好奇心,可以继续往下看这个结论是怎么来的。
相信你已经看过这篇文档中关于 Android 中各种尺寸单位的介绍,没看过的最好看一下

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

在 Android 应用设计中涉及到的单位都是密度无关像素(Density-independent Pixels),这个说法太拗口了,通俗点讲,Android 应用设计中只用物理尺寸,类似厘米,英寸这种单位,不用像素。之所以这样,是由于像素在手机领域说不清楚问题,比方说规定列表项高度是 48 px,在 HTC C510e 上看起来就不错,但在三星 Galaxy SIII 上看起来就会非常矮,导致很难看,这是因为这两个机器的屏幕的 dpi 相差很大,前一个大约 160 dpi,后一个大约 320 dpi。这就是手机屏幕不同带来的问题,如果不考虑平板,不同主要是密度不同,而不是尺寸不同,也不是分辨率不同,给设计带来困扰的根本是屏幕密度不同。不幸的是,很少人对这个有概念,通常介绍手机,会说屏幕尺寸,3.5
寸还是 4 寸,会说分辨率,480 x 800 还是 720 x 1280,但通常不会介绍屏幕密度是多少。其实通过尺寸和分辨率可以算出密度来,dpi 的 定义是 dot per inch,即每英寸的像素点,把分辨率和尺寸除一除就能得到。一个不确切的分法是,720 x 1280 的手机很可能接近 320 dpi (Android 里的 xhdpi),480 x 800 的手机很可能接近 240 dpi (Android 里的 hdpi)。

Android 选择的单位是 dp 和 sp,dp 的定义是“在 160 dpi 的屏幕上,1 dp 大约等于 1 px”。这个说法也很拗口,简单点说,1 dp ≈ 1 / 160 inch,他就是物理界的一长度单位。用这个单位设计就统一了,比方说规定列表项高度是 48 dp,在所有手机上看起来都差不多是 48 / 160 inch 那么高,虽然在不同手机上它对应了不一样多的像素点,但这个转换是 Android 手机完成的,每个 Android 手机都得知道在我这 1 dp 对应多少像素。sp 也是同样解释,18
sp 的字在所有手机上看起来应该都差不多大(自己改了字体大小设置的除外)。看到这里,可能有人会想,那岂不是不同手机显示的内容不同。确实是这样,同样一个列表,在 A 手机上只能显示五行,但在 B 个手机上就能显示六行;还是这个列表,在 A 手机上文字左边的留白就显得没有 B 手机多。

铺陈完了,逐条解释开始的最佳实践。

设计师在设计的时候是用不了 dp 的,他不可能拖一个 48 x 48 dp 的框,不可能设置一个 8 dp 的边距,Photoshop 里全是 px。于是我们就只有挑一个特定密度的屏幕,在这个特定密度的屏幕上,dp 和 px 的关系是确定,把设计做了,再把 px 转换成 dp 给工程师。另外有一点是,长度可以乘除一下就解决,图片是不能除的,图片必须手动缩放。

我们挑哪一个密度好呢?答案是挑密度最大的,因为图片缩小比放大好,放大会失真,选 320 dpi 作为目标屏幕,为其他屏幕提供图片时,只需要缩小。而 320 dpi 屏幕的分辨率最常见的是 720 x 1280,以这个尺寸作为画布尺寸,是最带感的,这样的设计稿就和应用在最多数的 320 dpi 的机器上运行起来的样子一样。当然你可以选其他画布大小,但再大也不见得方便,这个大小也够施展了。72 dpi 是 Photoshop 的默认设置,不要改就好,这个数字和后面的换算有关系。

字体的问题,Android 4.0 以后的设计规范中建议只使用四种字号,分别是 12 sp,14 sp,18 sp 和 22 sp,这也是 Android framework 用到的全部字号。我们需要找到在这个画布上,这些字号和 pt 的对应关系,以及,px 和 dp 的对应关系。有两种算法

  • 算法一
    根据 dp 的定义“在 160 dpi 的屏幕上,1 dp 大约等于 1 px”,那么在 320 dpi 的屏幕上,1 dp 约等于 2 px,我们就是为 320 dpi 做的设计,所有 px 值除以 2 就是 dp 值。字体略复杂一点,1 pt = 1 / 72 inch,即在 72 dpi 的画布上,1 pt = 1 px,我们的画布就是 72 dpi,又有 1 sp 约等于 2 px(同 dp 的定义),所以 1 sp = 2 pt,所有 pt 值除以 2 就是 sp 值。

  • 算法二
    可以想象是把一个 320 dpi 的手机屏幕放大到了 Photoshop 里,放大倍数是 320 / 72,即手机上的 1 dp,在画布上就是 320 / 72 dp,而 1 dp = 1 / 160 inch,所以在画布上就是 2 / 72 inch,而画布是 72 dpi,所以在画布上就是 2 px,即手机上的 1 dp 对应画布上的 2 px。字体的计算一样,只是多一个在 72 dpi 上,1 pt = 1 px 的转换。

  • 至此,都算清楚了,在这个画布上,px 到 dp,pt 到 sp 都是除以 2 的关系。

    最后,给 320 dpi 做的图片,到 240 dpi,160 dpi 上就要分别缩小 1.5 倍和缩小 2 倍。120 dpi 的机器已经很罕见,可以不考虑了

阅读全文

与android图片缩放算法相关的资料

热点内容
java变量转换 浏览:637
dns如何获取第一个服务器 浏览:134
app商业化是什么 浏览:357
excel批量转pdf 浏览:989
云服务器自定配置 浏览:229
世话命令 浏览:699
android图片缩放算法 浏览:720
更换迈腾压缩机电磁阀 浏览:583
python内置数据结构 浏览:191
程序员翟欣欣 浏览:299
怎么对快递加密 浏览:544
奇怪云服务器是干什么的 浏览:349
python3中整数的最大限制 浏览:1013
加密的u盘视频能自动播放吗 浏览:144
和道德相关的假言命令 浏览:483
android笔试题高级 浏览:721
转播别人直播源码 浏览:302
1元云购网站源码 浏览:635
https里抓出加密数据 浏览:543
js网页脚本源码分享 浏览:889