UI设计需要为android ui设计做几套资源

Android应用的UI设计图要做多大分辨率_百度知道
Android应用的UI设计图要做多大分辨率
提问者采纳
  dp转px是看屏幕密度的,mdpi比率大约1就是说48dp=48px(这里说大约是因为mdpi,hdpi,xhdpi指的都是一个范围),hdpi=1.5 48dp=72px,xhdpi=2 48dp=96px,720px*1280px如果是手机的话有可能是hpi或者xhdpi具体要看手机的屏幕大小,例如在5寸手机和4寸手机上是不一样的。譬如我的nexus4 768*寸就属于xhdpi。  如果你是按照720px*1280px xhdpi来设计,那么切图要放在xhdpi的文件夹,当app运行在非xhpid的手机上时android会自己帮你换算到其他的dpi。切图最好切9patch图,省空间。
资深电脑人
其他类似问题
为您推荐:
android的相关知识
其他1条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁android UI设计时需要注意遵循的设计原则
时间: 13:42:36
&&&& 阅读:92
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&1、Android设备屏幕尺寸分布
首先看一下各种屏幕的尺寸和屏幕密度划分,下图是各种屏幕尺寸对应的范围:
从上图可以看出,对应normal尺寸的屏幕范围集中在常见的3到5寸屏之间,large尺寸对应的就主要是5到7寸的nottpad之类的设备,例如三星的Note和Nexus7平板等,再网上走就是平板电脑了。接下来是屏幕密度(dpi),需要说明的时,平时所说的屏幕分辨率其实不能作为屏幕适配的依据,应该依据屏幕密度和屏幕尺寸来换算,屏幕密度是指每寸屏幕内容纳的像素数,屏幕密度从ldpi到xhdpi分别对应为120dpi、160dpi、240dpi、320dpi,屏幕密度越高、分辨率越高、屏幕尺寸越小就产生了视网膜屏幕。
在屏幕适配中,Google推荐针对mdpi(160dpi)进行设计,然后按照比例进行缩放,这种方法主要针对位图(某些不规则图片,无法拉伸的图片,其他建议使用.9图),以mdpi作为baseline,并以3:4:6:8的比例缩放:
2、Android资源文件
drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
3、Android上常见度量单位
px(像素):屏幕上的点,绝对长度,与硬件相关。
in(英寸):长度单位。
mm(毫米):长度单位。
pt(磅):1/72英寸,point。
dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
dip:Density-independent pixel,同dp相同。
sp:在dp的基础上,还与比例无关,个人理解为是一个矢量图形单位。
在xml中定义大小,建议TextView使用sp,其他使用dp
& & & & & & & & Android手机屏幕标准 & & &&对应图标尺寸标准 & 屏幕密度
xhdpi & & & & & & &
& & & & & & & & & & & & & & & 96*96 & & & & & & 320
hdpi & & & & & & & & 480*800 & & & & & & & & & & & & & & & 72*72 & & & & & & 240
mdpi & & & & & & & &480*320 & & & & & & & & & & & & & & & 48*48 & & & & & & 160
ldpi & & & & & & & & &320*240 & & & & & & & & & & & & & & & &36*36 & & & & & & 120
模拟器上不同分辨率所有对应的信息:&
QVGA : {density=0.75, width=240, height=320, scaledDensity=0.75, xdpi=120.0, ydpi=120.0}
HVGA : &{density=1.0, width=320, height=480, scaledDensity=1.0, xdpi=160.0, ydpi=160.0}
WVGA : {density=1.5, width=480, height=800, scaledDensity=1.5, xdpi=240.0, ydpi=240.0}
其中,density为显示的逻辑分辨率;width及height就为屏幕分辨率(为绝对宽度与高度),与fields中的widthPixels及 heightPixels一致;scaleDensity与density一致;xdpi及ydpi为x方向与y方向的像素密度。
4、如何计算密度(dpi)
1.标准是240*320画在1.5*2平方inch上。那么像每平方英寸有240*320/(1.5*2)=25600点,也就是一平方英寸的像素点为25600,所以dpi取为它的平方根160;如果你的dpi是120,那么它的密度就是0.75.
2. 密度不只是与width有关,还与height有关,所以不管width是1.8还是1.3,它的密度都有可能是1;比如width是1.8,只要它的 height是3/1.8的话,如果pixel为240*320的话,它的密度仍旧是1;同样如果width为1.3,只要它的 height为3/1.3的话,像素点为240*320,则密度也是1.
3.320*480/(1.5*2)得到单位平方英寸的点为51200,所以单位平方英寸是240*320画在1.5*2屏幕的2倍。但是这是平方英寸啊,算密度的时候要开平方的啊,所以应该是2开平方,是1.414吧,大致密度为1.5。
5、px与dip的关系
Android中,在160dpi (mdpi)中, 1 dip= 1
以此类推,在120dpi(ldpi)中, 1 dip = 0.75
& & & & & & & & & 在240dpi (hdpi)中, &1 dip = 1.5
& & & & & & & & & 在320dpi(xhdpi)中, 1dip = 2px;
6、如何做到与密度无关
  如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏 幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2 寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。 也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。官方文档总结的计算公式为:pixels
= dps * (density /160).
使用dip作为View的单位,这样就可以同时兼容各种不同的分辨率,不会造成UI的不可兼容。
标签:&&&&&&&&&&&&&&&&&&
&&&& &&&&&&
&& &&&&&&&&&&
版权所有 鲁ICP备号-4
打开技术之扣,分享程序人生!微信安卓端好像有段时间把tab(标签)改到了上面(符合安卓设计规范),但没过多久,又改回来了,这是什么原因?其它国内主流app的安卓版也很少有这么做的。
中国人手指头短,滑动距离不够,所以只能点击不能滑动。手势操作都是屁!
Android 一开始把 Tab 放在顶上的原因,是因为 Android Design 里有关于 Split Action Bar 的定义(粗略来说就是置于底部的 Action Bar),Google 认为将 Tab Bar 像 iOS 那样放置在底部会让用户将 Action 项和 Tab 项混淆。 &img src=&/4f5fe41b1cb_b.jpg& data-rawheight=&450& data-rawwidth=&775& class=&origin_image zh-lightbox-thumb& width=&775& data-original=&/4f5fe41b1cb_r.jpg&& 而且对于部分有 Navigation Bar 的机器来说,底部 Tab Bar 会带来不是很友好的视觉体验。&img src=&/4b3714eeaccee4e0a442_b.jpg& data-rawheight=&409& data-rawwidth=&654& class=&origin_image zh-lightbox-thumb& width=&654& data-original=&/4b3714eeaccee4e0a442_r.jpg&& Again,我不是针对 HTC 。 &br&&br&那么国内的应用为什么非要用底部 Tab 呢?我听到过的观点,不管是来自设计师还是PM,无非就是以下几个:&br&&ul&&li&用户学习成本低&br&&/li&&li&符合用户使用习惯&/li&&li&单手操作方便&br&&/li&&li&应用体量太大,两套设计不适合&br&&/li&&li&滑动不如触摸&br&&/li&&li&无论如何,iOS HIG 就是好(误&br&&/li&&/ul&即使我们忽略掉最后一条,你也能发现其他的理由都是瞎扯淡。&br&像 iOS 那样就是学习成本低?就是符合用户使用习惯?&br&单手操作方便?我就不说你拿台 6 寸手机过来,我们比比滑动的顶部 Tab 和底部 Tab 谁更方便怎样?哦我差点忘了,某些人认为“滑动”不如“触摸”呢,所以这样的界面是不是就是最适合触摸屏的界面啊?&br&&img src=&/618518ebecb0f0f1e5d77d13aa09340d_b.png& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/618518ebecb0f0f1e5d77d13aa09340d_r.png&&谈体量?请允许我直接引用 @ Allan 的答案的内容:&br&&blockquote&国内的微信 QQ 微博支付宝才是 App,才是体量大的 app;Google、 Facebook、Twitter、 WhatsApp、 Skype、Ebay 和 Pinterest 都是屁。&/blockquote&毕竟泱泱大国,怎么能和腐朽的资本主义国家的应用比体量呢?&br&&img src=&/7cd1751fef8476b0cdc4c4_b.jpg& data-rawwidth=&136& data-rawheight=&139& class=&content_image& width=&136&&&br&抱歉,我可能激动了。但是国内的情况就是这样,尤其是那些天天拿数据当宝捧的 PM 们,生怕自己一不小心犯了个错,就能吓跑一堆用户了。打个比方,你谈一谈 Drawer,他们就会搬出这篇文章出来和你谈 Drawer 有多么糟糕:&a href=&/p/d5dd0ba87832& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&能露出来, 就别藏着&i class=&icon-external&&&/i&&/a& ;“看吧,某个 App 将汉堡包按钮内的功能移到底栏。提升了65%的用户活跃度呢!”...&br&真是可怜。&br&应用程序的导航方式本就应该针对应用的使用环境进行设计,如果你的 App 就可怜巴巴的三个页面,还非要弄个 Drawer,就别怪用户切换率急剧下降了好吗?&br&Tab 也是同理,跟他们说别用底部 Tab,他们说什么?“滑动切换不如点击切换直观”,“为什么非要为了所谓的一致性来让用户用第二好用的交互方式?”...&br&是的,页面切换有四种做法,他们选了那个“ ”。&br&&br&其实底部 Tab 不是一个应用被骂的原罪, Instagram 也是底部 Tab,这么多年了有人骂它吗?虽然是“能改进更好”,但那至少是一个能用的应用,国内的应用呢?又卡又慢又臃肿,点个item要等半天,掉帧肉眼都可见了,你还好意思提滑动顶部 Tab 不直觉?&br&&br&一句话,题主要感谢那些&b&一会说自己尊重用户体验,一会又把用户当傻X;唯数据是图,谈跨平台设计色变&/b&的家伙们。&br&&br&又要掉友善度了,呜呜。
Android 一开始把 Tab 放在顶上的原因,是因为 Android Design 里有关于 Split Action Bar 的定义(粗略来说就是置于底部的 Action Bar),Google 认为将 Tab Bar 像 iOS 那样放置在底部会让用户将 Action 项和 Tab 项混淆。 而且对于部分有 Navigation Bar…
我是来反驳一些答案的.&br&&blockquote&用户习惯了&br&这样肯定是有数据理由的&/blockquote&让用户来当设计师&br&但他们却恰恰的不知道,其实用户是最不懂的。&br&用户是需要引导的,而不是去迎合的。&br&设计并不是妥协。&br&&br&一个 App 设计师, 最后要去看用户的眼光, 他们突然害怕尝试新的东西, 他们最后也就只能看各种数据, 用旧的那一套, 这无疑是悲哀&br&&br&&br&抱歉微信我不是针对你&br&我是说在场的各位都是辣鸡
我是来反驳一些答案的.用户习惯了这样肯定是有数据理由的让用户来当设计师但他们却恰恰的不知道,其实用户是最不懂的。用户是需要引导的,而不是去迎合的。设计并不是妥协。一个 App 设计师, 最后要去看用户的眼光, 他们突然害怕尝试新的东西, 他们最后也就…
Android开发者您所在的位置: &
Android UI设计:构建应用参数设置屏幕
Android UI设计:构建应用参数设置屏幕
布加迪编译
51CTO曾在前文中介绍了谷歌官方教程:Android UI设计技巧,本文为51CTO独家译文,我们将介绍《Android UI设计:构建应用参数设置屏幕》。
【51CTO译文】许多应用程序可以得益于共享参数设置(Shared Preferences)&&这是Android平台解决应用程序设置持久性存储的办法。有许多办法可以创建UI用户界面,用来为用户收集和显示持久性设置。最容易的办法就是使用PreferencesActivity,它提供了与平台的其余部分一致的外观感觉,包括设备的系统参数设置。不妨通过该教程来学习如何使用PreferencesActivity。
我们简单的Mobiletuts新闻源阅读应用程序还没有一个正式名称(我们一直称之为TutList),它需要改进针对后台更新过程的用户控制。因而,我们会添加一个参数设置,帮助控制后台更新过程。
构建应用参数设置屏幕的UI设计准备工作
不管怎样,开始之前都要下载一个素材,并导入到Eclipse。
第一步:添加UI设计共享参数设置助手
共享参数设置常常用在整个应用程序当中。关于单个设置的名称和参数设置组的名称的定义必须存储起来,以便用在整个应用程序当中。有几个办法来解决这个问题。我们采用的解决办法涉及一个辅助类(helper class),用于一致地访问特定的设置值,而参数设置键存储在资源字符串中,以便从代码及其他资源文件来访问。
不妨从辅助类代码开始入手:
public&class&TutListSharedPrefs&{&&&&&&&public&final&static&String&PREFS_NAME&=&&tutlist_prefs&;&&&&&&&&&&&public&static&boolean&getBackgroundUpdateFlag(Context&context)&{&&&&&&&&&&&SharedPreferences&prefs&=&context.getSharedPreferences(PREFS_NAME,&0);&&&&&&&&&&&return&prefs.getBoolean(&&&&&&&&&&&&&&&&&&&context.getString(R.string.pref_key_flag_background_update),&&&&&&&&&&&&&&&&&&&false);&&&&&&&}&&&&&&&&&&&public&static&void&setBackgroundUpdateFlag(Context&context,&boolean&newValue)&{&&&&&&&&&&&SharedPreferences&prefs&=&context.getSharedPreferences(PREFS_NAME,&0);&&&&&&&&&&&Editor&prefsprefsEditor&=&prefs.edit();&&&&&&&&&&&prefsEditor.putBoolean(&&&&&&&&&&&&&&&&&&&context.getString(R.string.pref_key_flag_background_update),&&&&&&&&&&&&&&&&&&&newValue);&&&&&&&&&&&mit();&&&&&&}&&&}&&
在这个类中,我们定义了一个公共变量来确认设置参数组或集的名称,名为PREFS_NAME。我们还使用了名为pref_key_flag_background_update的资源字符串,指定特定的设置参数名称定义。你应该为自己的资源添加字符串,那样可以定义该标识符。我们把其值设为&background_update_flag&,但重要的是,所用的值在每个地方都是一样的。
虽然我们添加了一个setBackgroundUpdateFlag()方法,以求全面,但不会使用这个方法。下文解释了原因。
最后,我们把这个Java类添加到了com.mamlambo.tutorial.tutlist.data程序包,因为那个类似乎最有关系。
第二步:添加UI设计参数设置屏幕活动
Android软件开发工具包(SDK)包括了一种一致的方法为用户提供设置:PreferenceActivity。这个特殊的Activity(活动)类与参数设置资源文件一起,共同使得开发人员很容易一致地配置和显示大多数类型的应用设置。与其他应用程序和系统参数设置屏幕相一致,也使得这些屏幕对用户来说很熟悉、很容易。
想为&TutList&应用程序添加PreferenceActivity,首先添加一个新的活动调用TutListPreferencesActivity,让它扩展PreferenceActivity(我们把它添加到主程序包)。由于我们没有使用默认的参数设置名称,就需要设定这个PreferenceActivity将使用的参数设置名称。此外,我们需要告诉它使用哪个参数设置资源文件。这将告诉它如何显示参数设置,并且告诉它这个屏幕显示和改动哪些参数设置。
在这个活动的onCreate()方法里面,使用setSharedPreferencesName()方法,参数设置组常量在我们在第一步定义的参数设置辅助类中有所定义。然后调用addPreferencesFromResource()方法。我们会在下一步定义这个资源。
眼下,这整个类看起来像这样:
public&class&TutListPreferencesActivity&extends&PreferenceActivity&{&&&&&&&@Override&&&&&&protected&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&&&&super.onCreate(savedInstanceState);&&&&&&&&&&&&&&&getPreferenceManager().setSharedPreferencesName(&&&&&&&&&&&&&&&&&&&TutListSharedPrefs.PREFS_NAME);&&&&&&&&&&&addPreferencesFromResource(R.xml.prefs);&&&&&&&}&&&}&
我们会在整个教程中改进这个类。但首先,我们创建名为prefs的被引用XML资源。
第三步:定义UI设计参数设置屏幕资源
为应用程序资源添加一个新的XML文件,名为prefs.xml。你可以使用新的Android XML文件向导,填写相应字段,如下图所示。这还会在正确的位置:/res/xml目录创建XML文件。
参数设置活动资源文件包括&标签和一个或多个标签,后者用于组织设置和各种类型特定属性。为了满足我们简单的参数设置要求,我们可以使用,它装入并存储布尔值。其他可能的类型包括EditTextPreference和ListPreference选择,分别用于收集字符串以及从项目列表中进行选择。
下面是整个内容参数设置屏幕资源文件prefs.xml:
&version=&1.0&&encoding=&utf-8&&&&&&&&&&xmlns:android=&/apk/res/android&&&&&&&&&&&&&&&&&&android:title=&Background&Updating&&&&&&&&&&&&&&&&&&&&&&&&&&android:summary=&@string/pref_summary_background_update_flag&&&&&&&&&&&&&&&android:title=&@string/pref_title_background_update_flag&&&&&&&&&&&&&&&android:key=&@string/pref_key_flag_background_update&&&&&&&&&&&&&
这表明了把键字符串作为资源来存储的最佳理由之一:它们既可以装入到Java中,又可以在XML文件中直接使用。
第四步:启动UI设计参数设置屏幕
下一步,我们将把菜单项添加到列表片段上,以启动参数设置屏幕。在做这一步时,我们还将更新刷新菜单项,不再开始进行预定更新。
为此,先编辑/res/menu/options_menu.xml资源文件,添加一个新的菜单项:
&&&&&&android:id=&@+id/settings_option_item&&&&&&&android:icon=&@drawable/ic_menu_preferences&&&&&&&android:title=&@string/settings&&
你还需要为菜单项标题(@string/settings)添加相应的资源字符串,并添加一个相应的图标(@drawable/ic_menu_preferences)。我们使用来自Android SDK的标准的参数设置图标,该图标对用户来说会很熟悉。
接下来,编辑onCreateOptionsMenu()方法,为新的菜单项提供正确的Intent:
Intent&prefsIntent&=&new&Intent(getActivity().getApplicationContext(),&&&&&&&&&&&TutListPreferencesActivity.class);&&&&&&&MenuItem&preferences&=&menu.findItem(R.id.settings_option_item);&&&preferences.setIntent(prefsIntent);&&
现在,更新onOptionsItemSelected()方法。由于菜单项不止一个,现在有必要使用开关语句。在该开关语句里面,我们可以使用为每个菜单项分配的常量标识符,以区别用户的选择。
&&&Override&&ic&boolean&onOptionsItemSelected(MenuItem&item)&{&&&switch&(item.getItemId())&{&&&case&R.id.refresh_option_item:&&&&&&&getActivity().startService(item.getIntent());&&&&&&&&&&case&R.id.settings_option_item:&&&&&&&getActivity().startActivity(item.getIntent());&&&&&&&&&&}&&&return&&&
最后,不要忘了为Android清单文件添加新的活动:
&&&&&&android:name=&.TutListPreferencesActivity&&&
现在你可以运行应用程序,看到新的菜单项。
参数设置活动启动后,可以存储和检索后台更新参数设置。它应该看起来如下:
看起来很好,但还没有做实际的操作。虽然标记在参数设置里面进行更新,但还没有地方来检查值,看看要不要开始后台更新。
第五步:开始和停止警报
在上一步,对setRecurringAlarm()辅助方法的调用已被删除。实际上,这个方法在TutListFragment类中不再需要。而是把它移到TutListPreferencesActivity类。然后添加第二个辅助方法,名为cancelRecurringAlarm():
cancelRecurringAlarm():&&&&&&&&&private&void&cancelRecurringAlarm(Context&context)&{&&&&&&&Intent&downloader&=&new&Intent(context,&AlarmReceiver.class);&&&&&&&PendingIntent&recurringDownload&=&PendingIntent.getBroadcast(context,&&&&&&&&&&&&&&&0,&downloader,&PendingIntent.FLAG_CANCEL_CURRENT);&&&&&&&AlarmManager&alarms&=&(AlarmManager)&getSystemService(Context.ALARM_SERVICE);&&&&&&&alarms.cancel(recurringDownload);&&&}&
最后,覆盖TutListPreferencesActivity类的onPause()方法;视情况需要,设置或取消循环警报。在这个方法里面,你可以使用辅助方法getBackgroundUpdateFlag()来检查参数设置的值:更新的值,并调用相应的方法:
&&&@Override&&ected&void&onPause()&{&&&super.onPause();&&&Context&context&=&getApplicationContext();&&&if&(TutListSharedPrefs.getBackgroundUpdateFlag(getApplicationContext()))&{&&&&&&&setRecurringAlarm(context);&&&}&else&{&&&&&&&cancelRecurringAlarm(context);&&&}&&
现在,无论何时检查设置,都可以根据当前值来更新警报。由于默认值是&off&,用户必须进入到设置,才能启用后台下载。
关于PreferenceFragment
你可能会想我们为什么不用新的PreferenceFragment类。原因很简单:它在兼容性库中还没有得到支持。由于我们想要让TutList应用程序不仅仅与Android 3.0设备兼容,所以我们还无法使用它。但愿兼容性库会继续得到改进。
在该教程中,大家学会了如何用PreferencesActivity使用PreferencesScreen资源文件,以便快速、轻松地创建一个功能活动,以便管理应用程序的参数设置数据。此外,你为用户提供了控制后台更新TutList应用程序的一个方法。
【责任编辑: TEL:(010)】
关于&&&&&&的更多文章
本书以Android 4.X进行开发示范,通过大量图示与step by step方
既然强大的Android Studio来了,有什么理由不去用呢?
微软的思路很明确。一个消费者需要拥有几款电子设备?
中秋已过,圆圆的月亮似乎是一个害羞的姑娘,带上了一
对于设计师来说,扁平化设计是一种实打实的设计风格,
一个网站,无论视觉上多美观或者内容多丰富,如果它不能适应各种浏览情况并能面向尽可能广泛的用户群,那它就不算是真正成功的网
Windows Phone专家
Android开发专家
51CTO旗下网站UI设计师大礼包!2014年最全的Android GUI模板和线框图免费下载
优秀网页设计联盟-SDC-网页设计师交流平台-听讲座,聊设计,找素材,尽在优设网
& / & 正文
Hi,我是优设小编
UI设计师大礼包!2014年最全的Android GUI模板和线框图免费下载
编者按:距离上次分享GUI模板有很长时间了,这段时间里设计趋势不断变化,谷歌推出了最新的Android L以及全新的界面设计,UI设计师又有得忙了,今天收集了一组实用的GUI模板和线框图,包含最新的Android4.4,Material Design,Android 可穿戴设备等等,控件全面,拿来即用,建议收藏待用呦。
Apple小哥不要急,你的资源在这里:
(Sketch)
(Sketch)
(Sketch)
(Sketch)
(Sketch)
(Sketch)
(Firework PNG & PSD)
(OmniGraffle)
(OmniGraffle)
(Omnigraffle)
(Illustrator、Fireworks、Axure、OmniGraffle、Visio、Keynote and PowerPoint)
分享最新的几个设计神器!
堪称PS外挂的标示神器!
一键生成黄金分割曲线,方便实用!
直击广大设计师痛点!字体识别神器!
原文地址:
【优设网 原创文章 投稿邮箱:】
================关于优设网================
“优设网“是国内人气最高的网页设计师学习平台,专注分享网页设计、无线端设计以及PS教程。
【特色推荐】
设计师需要读的100本书:史上最全的设计师图书导航:。
设计微博:拥有粉丝量78万的人气微博 ,欢迎关注获取网页设计资源、下载顶尖设计素材。
设计导航:全球顶尖设计网站推荐,设计师必备导航:
———————————————————–
想在手机上、被窝里获取设计教程、经验分享和各种意想不到的”福利”吗?
添加 优秀网页设计 微信号:【youshege】优设哥的全拼
您也可以通过扫描下方二维码快速添加:
订阅更新:您可以通过
【推荐!设计师必备网址导航】
我们的团队
大家在关注

我要回帖

更多关于 android ui设计 的文章

 

随机推荐