- 浏览: 1099994 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
baiyi168:
非常有用,多谢楼主
Android中的一个TextView中的字体设置不同大小 -
qq271629261:
[img] ...
android开发工具 Eclipse+Android SDK+ADT -
txlong_onz:
haotainan 写道Activity伪造Dialog,这个 ...
Activity伪造Dialog的时候不能全屏显示 -
haotainan:
Activity伪造Dialog,这个Dialog显示的时候界 ...
Activity伪造Dialog的时候不能全屏显示 -
gangbener:
cainingyouyou 写道7楼的,tag,怎么解决的啊1 ...
android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
1.sytle:Android中的style就是用简单的配置来实现页面的外观和风格的方式。他是一个包含一个或者多个view控件属性的集合,可以当成一个整体应用到XML单个元素上。
例如我们可以在res/values/styles.xml文件,键入代码:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="style1"> <!-- 为样式定义一个全局唯一的名字--> <item name="android:textSize">18px</item> <!-- name属性为样式要用在的View控件持有的属性 --> <item name="android:textColor">#0000CC</item> <!-- 等等…… --> <item name="android:layout_width">60dip</item> <item name="android:layout_height">50dip</item> <item name="android:layout_weight">1</item> <item name="android:divider">#FFCFCFCF</item> <item name="android:dividerHeight">0.5dip</item> <item name="android:listSelector">@drawable/list_item_bg</item> <item name="android:cacheColorHint">#00000000</item> </style> <style name="TitleStyle"> <item name="android:textSize">18sp</item> <item name="android:textColor">#ec9237</item> </style> <style name="LinkStyle"> <item name="android:textSize">18sp</item> <item name="android:textColor">#ec0032</item> <item name="android:fromAlpha">0.0</item> <item name="android:toAlpha">0.0</item> </style> <style name="SpecialText"> <item name="android:textSize">28sp</item> <item name="android:textColor">@color/darkgreen</item> <item name="android:gravity">center</item> <item name="android:textStyle">bold|italic</item> <item name="android:background">@drawable/icon</item> </style> </resources>
这其实也就是把view的属性罗列出来,用一个view关联。这样在遇到view配置相同的属性的时候就可以直接通过这个名字直接关联这样的样式设置了。其实这个还想是WEB开发中的CSS的使用。就是把view的属性单独写出,提高重用性。
在layout文件中可以像下面这样使用上面的android样式:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView style="@style/TitleStyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:text="txlong_onz ai slna" /> <TextView style="@style/LinkStyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:text="http://txlong-onz.iteye.com" android:autoLink="all" /> <TextView style="@style/SpecialText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:text="SpecialText" /> </LinearLayout>
<style>标签中有一个parent属性。这个属性可以让当前样式继承一个父样式,当前样式可以继承到父样式的值。当然,如果父样式的值不符合你的需求,你也可以对它进行修改,和CSS中的覆盖效果一样,都是以最后的为准,例子如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="style1"> <item name="android:textSize">18px</item> <!-- name属性为样式要用在的View控件持有的属性 --> <item name="android:textColor">#0000CC</item> </style> <style name="subitcast" parent="@style/style1"> <item name="android:textColor">#FF0000</item> </style> </resources>
样式的继承,一种是继承平台自带的。一种是继承自定义的样式。继承平台原有的一定要parent指定。
<style name="GreenText" parent="@android:style/TextAppearance"> <item name="android:textColor">#00FF00</item> </style>
继承自定义的只需在name前加要继承的style主题就行了。<style name="GreenText.Red">
<item name="android:textColor">#FF0000</item> </style>
这种方法可以不断地继承
<style name="CodeFont.Red.Big"> <item name="android:textSize">30sp</item> </style>
2.theme:Android主题设置其实就是将主题添加到一个配置里,以方便调用,提高重用性。所以配置文件的属性也就是窗口等的主题样式。
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="theme1"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">?android:windowNoTitle</item> </style> </resources>
上面"?android:windowNoTitle"中的问号用于引用在当前主题中定义过的资源的值。下面代码显示在AndroidManifest.xml中如何为应用设置上面定义的主题:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/theme1"> <activity android:name=".MessageShowActivity" android:label="@string/app_name" android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait" android:theme="@style/theme2"> </activity> </application>
除了可以在AndroidManifest.xml中设置主题,同样也可以在代码中设置主题,如下:
setTheme(R.style.theme1);
尽管在定义上,样式和主题基本相同,但是它们使用的地方不同。样式用在单独的View,如:EditText、TextView等;主题通过AndroidManifest.xml中的<application>和<activity>用在整个应用或者某个 Activity,主题对整个应用或某个Activity存在全局性影响。如果一个应用使用了主题,同时应用下的view也使用了样式,那么当主题与样式属性发生冲突时,样式的优先级高于主题。
另外android系统也定义了一些主题,例如:
<activity android:theme="@android:style/Theme.Dialog">,该主题可以让Activity看起来像一个对话框,
<activity android:theme="@android:style/Theme.Black.NoTitleBar">Variant of the light theme with no title bar,系统自带的黑色主题。如果需要查阅这些主题,可以在文档的reference-->android-->R.style 中查看。
3.AlertDialog的使用Demo:
主要的类在这里粘出来,style和theme自己下载下边的附件。
public class StyleThemeTest extends Activity { public final String TAG = "Test"; private Dialog mDialog; private Button button1; private Button button2; private Button button3; @Override public void onCreate(Bundle savedInstanceState) { StyleThemeTest.this.setTheme(R.style.theme1); super.onCreate(savedInstanceState); setContentView(R.layout.main); button1 = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); button3 = (Button) findViewById(R.id.button3); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog = new AlertDialog.Builder(StyleThemeTest.this) .setIcon(android.R.drawable.ic_dialog_alert) .setTitle("Warning!") .setMessage("Are you sure to Follow or UnFollow the friend?") .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Log.v(TAG, "OK"); } }) .setNeutralButton("Cancel",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Log.v(TAG, "Cancale"); } }).create(); mDialog.show();// 如果要显示对话框,一定要加上这句 } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Builder builder = new AlertDialog.Builder(StyleThemeTest.this); builder.setIcon(android.R.drawable.alert_dark_frame); builder.setTitle("AlertDialog Title."); builder.setMessage("What do think about this?"); builder.setNegativeButton("好", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.v(TAG, "good"); } }); builder.setNeutralButton("中立", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.v(TAG, "just soso"); } }); builder.setPositiveButton("不好", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.v(TAG, "bad"); } }); builder.create().show(); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new AlertDialog.Builder(StyleThemeTest.this) .setMessage("There is a xxxxxxxxxxxx error hanppened!!!") .setPositiveButton("知道了!", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Log.v(TAG, "I KNOW."); } }).create().show(); } }); } }
发表评论
-
安卓自动编译工具Gradle
2015-09-02 15:15 1129https://developer.android.com ... -
图片的水平平铺效果
2014-03-10 15:45 2445Android要实现图片的水平平铺效果: 很简单也很强大, ... -
LinearLayout中的属性baselineAligned的使用
2013-10-19 18:54 34415Android线性布局中的属性主要的就是控制浮动方向的or ... -
Activity伪造Dialog的时候不能全屏显示
2013-05-31 08:42 14266使用Activity伪造Dialog的时候出现不能全屏的问 ... -
修改局部源码烧录手顺
2012-08-16 09:23 21391. 添加命令到PATH路径下,方便全局使用: andro ... -
备份我的源码烧录的sh文件
2012-07-16 10:39 1380烧录编译的img文件: 01.tofastboot.sh ... -
备份我的源码编译的sh文件
2012-07-16 10:34 1604编译命令写一次就可以了。以后直接使用。 01-extra_s ... -
ADT20安装报错
2012-06-29 23:44 9235Cannot complete the install bec ... -
ubuntu12.04(VirtualBox) 64-bit build android source
2012-05-20 17:33 30431.download VirtalBox(Virtual ... -
搭建android源码编译开发服务器
2012-05-20 17:32 73521.android服务器,其实也就是台式机器的增强版本。基本上 ... -
ADT离线安装报错
2012-04-23 09:37 3398最近使用ADT的离线zip包安装ADT总是报错。说是 Can ... -
Android源码编译中的Makefile文件
2012-04-18 09:09 25611.和大多shell文件一样,makefile中的#表示注释, ... -
遍历android根目录的简单资源查看器
2012-04-16 17:02 3773效果如图: package com.txl.sua; ... -
Nexus s与android4.0
2011-12-14 13:15 14411.内核源码链接 http://android.git.ke ... -
Android编译生成系统-译文
2011-12-08 11:21 3537生成 4.0.1 系统 下边 ... -
Android中设置TextView的颜色setTextColor
2011-11-10 11:34 182371android中设置TextView的颜色有方法setTex ... -
Android中设置activity的background为Wallpaper
2011-08-15 08:34 3905<activity android:name=&q ... -
android程序中怎么实现平铺效果
2011-08-10 17:06 4932很简单,就像window桌面图片一样,如果图片小的话就会平铺。 ... -
一个android应用向Home screen添加多个Widget
2011-08-09 15:12 5137如Twitter客户端或者HTC的日历应用,可以添加大小不 ... -
怎么实现Widget中的动画效果,如渐入等
2011-08-09 11:22 3107怎么在Widget中添加animation,如渐入渐出,淡入淡 ...
相关推荐
在Android开发中,`AlertDialog`是系统提供的一种...以上就是关于在Android中自定义`AlertDialog`以及应用Holo风格的详细步骤和相关知识点。通过这些知识,你可以为用户提供更加符合系统风格且具有交互性的对话框体验。
在提供的源码中,我们可以期待看到以上步骤的具体实现,包括自定义布局文件的XML代码、Java或Kotlin代码中的AlertDialog构建逻辑,以及可能的样式和动画配置。通过学习和理解这个源码,开发者可以更好地掌握如何在...
在Android应用开发中,UI设计是至关重要的一个环节,它直接影响到用户体验和应用的整体美观。半透明效果对话框是Android UI设计中一种常见的交互元素,它可以在不影响用户对背景界面操作的同时,提供一种轻量级的...
在Android开发中,`AlertDialog`是用户界面(UI)组件之一,用于显示警告或确认信息,通常用于在关键操作前获取用户的确认或者提供简单的选择。`AlertDialog`比普通的`Dialog`更加正式,常用于提示用户可能有风险的...
- `AlertDialog`必须在UI线程中创建和显示。 - 使用`show()`方法来显示对话框,而不是`create()`,因为`create()`只是初始化对话框,但不会显示。 总之,`AlertDialog`在Android开发中扮演着重要的角色,能够灵活...
在Android系统中,AlertDialog是用户界面(UI)组件之一,用于展示重要的信息或者进行简单的用户交互。本篇将详细介绍如何在Android中实现一个类似iPhone样式的AlertDialog,并通过分析提供的源码来深入理解其工作...
在Android开发中,`AlertDialog`是系统提供的一种用于与用户交互的对话框,通常用于显示警告、确认或者请求用户输入信息。然而,系统的默认样式可能无法满足所有设计需求,因此开发者有时需要对其进行自定义,例如...
在Android开发中,自定义Dialog是一项常见的需求,它允许开发者根据应用的UI风格和功能需求进行个性化设计。本文将深入探讨如何自定义一个Android Dialog,特别是实现一个类似于支付密码输入框的功能,其中EditText...
总的来说,实现Android中的加载中效果涉及到UI设计、布局构建、Dialog实例化、状态管理等多个方面。开发者可以根据项目需求选择适合的方法,以创建既有视觉吸引力又能有效提升用户体验的加载等待效果。在实际开发...
在Android开发中,`AlertDialog`是一种常见的用户交互组件,用于展示重要的信息或获取用户的确认、选择等反馈。本文将深入探讨由作者nifty创建的精美`AlertDialog`实现,该实现提供了丰富的视觉效果和定制选项。 ...
在Android应用开发中,...虽然在新版本的Android中被弃用,但它仍然是学习Android UI和异步处理的重要知识点。理解ProgressDialog的工作原理和替代方案,可以帮助开发者创建更加友好且适应性强的用户体验。
Android允许开发者通过设置不同的主题(Theme)和样式(Style)来改变对话框的外观。在源码中,你可以看到如何通过设置主题属性(如android:theme)来改变对话框的整体风格。 6. **对话框的生命周期** 对话框有...
本篇文章将详细介绍如何在Android中去除Dialog的白色边框,以实现"dialogstyle 去掉背景白色框"的目标。 首先,我们需要了解Dialog的基本结构。Dialog是基于AlertDialog类或者自定义的DialogFragment构建的,通常...
总之,Android底部弹出对话框的实现涉及到了样式定义、动画资源的创建和使用,以及在代码中动态构建和显示对话框。这样的功能不仅提升了应用的视觉效果,还能提高用户的操作便捷性,是Android应用开发中的一个重要...
通过上述介绍可以看出,Android平台提供了丰富的工具和选项来帮助开发者定制UI界面,包括自定义对话框、标题栏以及透明效果等。这对于提高应用程序的用户体验非常重要。开发人员可以根据项目需求灵活选择合适的方法...
总的来说,这个毕业设计项目涵盖了Android开发中的多个关键知识点,包括UI组件的使用(DatePicker和TimePicker)、自定义对话框的创建、事件监听、数据对象的处理以及版本兼容性。通过学习和分析这个源码,学生可以...
在Android开发中,自定义对话框(Custom Dialog)是一个常用的功能,它允许开发者根据应用的UI风格和需求创建独特、个性化的提示或加载界面。本文将深入探讨如何在Android中实现一个自定义加载对话框,以及如何实现...
此外,开发者可能会在源码中看到对样式和主题的调整,这通常是通过`setStyle(int style, int theme)`方法完成的。风格和主题可以改变对话框的外观,使其与应用程序的整体设计保持一致。 在`MyAlertDialog`中,...
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault_Dialog)); builder.setMessage("服务需要您的确认"); builder.setPositiveButton(...