我们在使用EditText进行多行输入的时候,通常的写法如下:
<EditText android:id="@+id/editContent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="3" android:textSize="18sp"/>我们增加一个minLines就可以指定EditView至少为三行,如果想指定行数最大值,我们再加一个maxLines即可。效果如下图所示:
但是,这时候又有个问题,就是光标落在了中间位置,而我们想把它放到第一行,处理方法如下:
<EditText android:id="@+id/editContent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="3" android:textSize="18sp" android:gravity="Top">
效果如下图所示:
gravity表示控件内部内容的位置
layout_gravity表示控件的位置
根据日期计算星期的公式有很多,下面介绍一个比较著名的——蔡勒(Zeller)公式,即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1。
公式中的符号含义如下:C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。
这里需要注意:我在测试的时候发现有些日期算出来的w除以7的结果是负数(-1~-6),这时需要加7.
下面通过一个实例来演示:
Activity:
package com.home.week; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { private Button setBtn; private TextView showDateText; private TextView showWeekText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setBtn = (Button) findViewById(R.id.activity_main_btn); setBtn.setOnClickListener(this); showDateText = (TextView) findViewById(R.id.activity_main_tv_show_date); showWeekText = (TextView) findViewById(R.id.activity_main_tv_show_week); } @Override public void onClick(View v) { getDateAndWeek(); } /** * 弹出日期对话框并获取选择的日期和星期 */ private void getDateAndWeek() { Calendar c = Calendar.getInstance(); int year = 0; int mouth = 0; int day = 0; if (!"".equals(showDateText.getText().toString())) { String date = showDateText.getText().toString(); String[] strs = date.split("-"); year = Integer.parseInt(strs[0]); mouth = Integer.parseInt(strs[1]) - 1; day = Integer.parseInt(strs[2]); } else { year = c.get(Calendar.YEAR); mouth = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); } // 直接创建一个DatePickerDialog对话框实例,并将它显示出来 new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { showDateText.setText(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth); int c = year / 100; int d = dayOfMonth; int y = year % 100; int m = monthOfYear + 1; if (m == 1 || m == 2) { y = year - 1; m = monthOfYear + 12; } // 运用Zeller公式计算星期 int w = (y + (y / 4) + (c / 4) - 2 * c + (26 * (m + 1) / 10) + d - 1) % 7; if (w < 0) { w += 7; } if (monthOfYear == 0 || monthOfYear == 1) { w += 2; } if (w >= 7) { w = w % 7; } String week = null; switch (w) { case 0: week = "日"; break; case 1: week = "一"; break; case 2: week = "二"; break; case 3: week = "三"; break; case 4: week = "四"; break; case 5: week = "五"; break; case 6: week = "六"; break; default: break; } showWeekText.setText("星期" + week); } } // 设置初始日期 , year, mouth, day).show(); } }
布局XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/activity_main_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="设置日期" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <TextView android:id="@+id/activity_main_tv_show_date_prompt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="日期:" /> <TextView android:id="@+id/activity_main_tv_show_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_toRightOf="@id/activity_main_tv_show_date_prompt" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <TextView android:id="@+id/activity_main_tv_show_week_prompt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="星期:" /> <TextView android:id="@+id/activity_main_tv_show_week" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_toRightOf="@id/activity_main_tv_show_week_prompt" /> </RelativeLayout> </LinearLayout>
转自:http://www.sharetk.com/html/ued/Visual-Design/1465.html
引导页是用户在首次安装并打开应用后,呈现给用户的说明书。目的是希望用户能在最短的时间内,了解这个应用的主要功能、操作方式并迅速上手,开始体验之旅。既然是说明书那难免不受待见,因为我们的用户总是傲娇,他们不喜欢被教育、被说明,他们喜欢一口气划过引导页,直接上手,但是在碰到问题、遇到挫折的时候又会各种别扭。所以这就需要设计师非常用心的去处理引导页的设计。
丰富多彩、风格迥异的引导页设计
有些引导页则沉稳大气,适合资讯类的应用,给人以可信赖感。例如搜狐新闻客户端的引导页设计,摒除了所有多余的设计,用干净的界面及有力的文字体现了整个应用真实可信的媒体平台的定位。
有些引导页则轻松、活泼,适合日常工具或者休闲类的应用,让用户感受到贴心和放松。例如UC手机浏览器,由用户使用浏览器常见的下载麻烦的情景来穿起整个引导页,像一副四格漫画一样让用户带着浏览漫画的心情,轻松地阅读完整个引导页,同时也强调了使用UC浏览器下载的轻松便捷。
更多推荐:
免费响应式模板http://www.sharetk.com/html/template/responsive
免费后台模板下载http://www.sharetk.com/html/template/admin/
网站模板下载http://www.sharetk.com/html/template/html/
- 3. 网页特效
- 4. 网页素材
- 5. 网页模板
- 6. 设计欣赏
- 7. HTML5
- 8. 代码片段
- 9. 站长工具
- 10. UED体验
- 11. 优化营销
- 12. 淘宝模板
- 13. 淘宝开店教程
- 14. UI设计
- 15. 后台模板
- 16. 响应式模板