分类索引: 资源分享

listview与ScrollView老问题的另类解法

这几天一直被listview怎么合理的放进scorllview中的问题困扰,尝试过把listview放入scorllview中的朋友都知道,被放入的listview显示是有问题的,无论怎么设置layout都只显示大概2行的高度,看起来很郁闷,更别说美观了,后来上网查询了一下,解决方法有的是用linearlayout替换listview,还有修改onmeasure的,我比较懒个人感觉很麻烦不喜欢,终于想出了一个还算和谐的解决方法:xml中的textlist设置如下:
<?xml version=“1.0” encoding=“UTF-8”?>
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”
android:orientation=“vertical”
android:background=“#44444444”>
<ScrollView
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”>
<LinearLayout
android:id=“@+id/ll1”
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”
android:scrollbars=“vertical”
android:orientation=“vertical”
android:paddingLeft=“15dp”
android:paddingRight=“15dp”
android:paddingTop=“30dp”
android:paddingBottom=“30dp”
android:background=“#ff888888”>
<TextView
android:text=“あ”
android:textColor=“#ffeeeeee”
android:textSize=“18sp”
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”></TextView>
<ListView
android:scrollbars=“none”
android:stackFromBottom=“true”
android:id=“@+id/lv0”
android:layout_width=“fill_parent”
android:layout_height=“20dp”></ListView>
</LinearLayout>
</ScrollView>
</LinearLayout>
其中的textview是我做的东西要用到的,和方法无关可以不看,然后就是在java中重新设置listview的高度了,目的是把listview“撑”开:
LinearLayout.LayoutParams lp5 =new LinearLayout.LayoutParam(LayoutParams.FILL_PARENT, listItem.size()*51-1);
其中第一个属性不必说了,第二个是为了计算listview要设置的总高度用的,51是我事先设置好的一行的高度(50)+每行之间的间隔(1)而得来的,listItem.size()是我要显示的行数,用.setLayoutParams(lp5);来重新设置高度,其他别的设置跟以前一样,想要源码我整理完之后贴出来

使用Android自带Gallery组件实现CoverFlow,源码+解析

使用过Android自带的gallery组件的人都知道,gallery实现的效果就是拖动浏览一组图片,相比iphone里也是用于拖动浏览图片的coverflow,显然逊色不少。实际上,可以通过扩展gallery,通过伪3D变换可以基本实现coverflow的效果。本文通过源代码解析这一功能的实现。具体代码作用可参照注释。

最终实现效果如下:

要使用gallery,我们必须首先给其指定一个adapter。在这里,我们实现了一个自定义的ImageAdapter,为图片制作倒影效果。
传入参数为context和程序内drawable中的图片ID数组。之后调用其中的createReflectedImages()方法分别创造每一个图像的倒影效果,生成对应的ImageView数组,最后在getView()中返回。
阅读全文

标签:, , ,

Java日期时间函数

  1. package test;
  2. import java.sql.Timestamp;
  3. import java.text.DateFormat;
  4. import java.text.ParseException;
  5. import java.text.SimpleDateFormat;
  6. public class SQLDate {
  7. public static void main(String[] args){
  8. System.out.println(System.currentTimeMillis());        //结果:1244711626453
  9. java.util.Date date1 = new java.util.Date();
  10. System.out.println(date1.toString());    //结果: Thu Jun 11 16:27:57 CST 2009
  11. //java.sql.Date extends java.util.Date
  12. java.sql.Date date2 = new java.sql.Date(System.currentTimeMillis());
  13. System.out.println(date2.toString());    //结果: 2009-06-11
  14. java.sql.Date date3 = new java.sql.Date(date1.getTime());
  15. System.out.println(date3.toString());    //结果:2009-06-11
  16. //Timestamp extends java.util.Date
  17. Timestamp stamp1 = new Timestamp(System.currentTimeMillis());
  18. System.out.println(stamp1.toString());    //结果: 2009-06-11 16:27:57.75
  19. Timestamp stamp2 = new Timestamp(date1.getTime());
  20. System.out.println(stamp2.toString());    //结果:2009-06-11 16:52:56.171
  21. //日期时间转换成格式化的字符串
  22. SimpleDateFormat sdf = new SimpleDateFormat(“yyyy/MM/dd HH:mm:ss”);
  23. //format(java.util.Date date), Timestamp是java.util.Date的子类
  24. String timeStr =  sdf.format(stamp1);
  25. System.out.println(timeStr);    //结果:2009/06/11 16:52:56
  26. //SimpleDateFormat extends DateFormat,DateFormat是抽象类
  27. DateFormat df = new SimpleDateFormat(“yyyy/MM/dd HH:mm:ss”);
  28. String timeStr2 = df.format(date1);
  29. String timeStr3 = df.format(date2);
  30. System.out.println(timeStr2);    //结果:2009/06/11 16:52:56
  31. System.out.println(timeStr3);    //结果: 2009/06/11 16:52:56
  32. //字符串转化为日期时间
  33. try {
  34. //parse()中的参数必须与sdf中定义的格式一致,否则抛异常
  35. java.util.Date date6 = sdf.parse(“2009/12/10 5:12:02″);
  36. System.out.println(date6.toString()); //结果: Thu Dec 10 05:12:02 CST 2009
  37. java.sql.Date date7 = new java.sql.Date(date6.getTime());
  38. System.out.println(date7.toString()); //结果: 2009-12-10
  39. //注意: sdf.parse()返回值是java.util.Date类型,不能转化成java.sql.Date类型
  40. //java.sql.Date date8 = (java.sql.Date)sdf.parse(“2009/12/10 5:12:02″); //不可行
  41. Timestamp stamp9 = new Timestamp(date7.getTime());
  42. System.out.println(stamp9.toString()); //结果: 2009-12-10 05:12:02.0
  43. } catch (ParseException e) {
  44. e.printStackTrace();
  45. }
  46. }
  47. }
标签:, , , ,