当前位置:  编程技术>移动开发
本页文章导读:
    ▪童贞apk纠结过的技术点<4&gt        处女apk纠结过的技术点<4>                                                        listView布局自定义和数据填充,以及结合tabhost使用 1,tabhost定义选项 LayoutInfl.........
    ▪ 兑现滚动切换的阻尼效果        实现滚动切换的阻尼效果 类似launcher的多屏切换效果,看了launcher的源码后, 发现主要使用了Scroller类来实现屏幕滚动,   在sroller的构造函数中加一个加速器参数 inpl=new OvershootInterpolator(); .........
    ▪ Bit地图和Drawable相互转换方法[转]       Bitmap和Drawable相互转换方法[转] 原文链接:http://www.android123.com.cn/kaifafaq/704.html   一、Bitmap转Drawable Bitmap bm=xxx; //xxx根据你的情况获取 BitmapDrawable bd= new BitmapDrawable(getResource(), bm); 因为BtimapDra.........

[1]童贞apk纠结过的技术点<4&gt
    来源: 互联网  发布时间: 2014-02-18
处女apk纠结过的技术点<4>

                                                       listView布局自定义和数据填充,以及结合tabhost使用

1,tabhost定义选项

LayoutInflater.from(this).inflate(R.layout.pressure,
    host.getTabContentView(), true);
  // 加载tab选项字体布局
  LayoutInflater inflater = this.getLayoutInflater();
  View view1 = inflater.inflate(R.layout.tabview1, null);
  View view2 = inflater.inflate(R.layout.tabview2, null);
  View view3 = inflater.inflate(R.layout.tabview3, null);
  View view4 = inflater.inflate(R.layout.tabview4, null);
  View view5 = inflater.inflate(R.layout.tabview5, null);
  View view6 = inflater.inflate(R.layout.tabview6, null);//自定义view填充到选项卡中,改变选项卡风格

  host.addTab(host.newTabSpec("7days").setIndicator(view1)
    .setContent(R.id.pressure));
  host.addTab(host.newTabSpec("15days").setIndicator(view2)
    .setContent(R.id.pressure));
  host.addTab(host.newTabSpec("30days").setIndicator(view3)
    .setContent(R.id.pressure));
  host.addTab(host.newTabSpec("90days").setIndicator(view4)
    .setContent(R.id.pressure));
  host.addTab(host.newTabSpec("180days").setIndicator(view5)
    .setContent(R.id.pressure));
  host.addTab(host.newTabSpec("360days").setIndicator(view6)
    .setContent(R.id.pressure));
  setContentView(host);//设置host为主布局

2,在tabhost选项中设置一直线布局为为显示视图,而布局中填充,列表选项和一个listview

<?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="fill_parent"
 android:orientation="vertical"
 android:id="@+id/pressure">
 <LinearLayout android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:orientation="horizontal">
  <TextView android:layout_width="140dip" android:layout_height="wrap_content"
   android:text="@string/tab1" android:textColor="@color/frontcolor"
   android:textSize="20sp"/>
  <TextView android:layout_width="150dip" android:layout_height="wrap_content"
   android:text="@string/tab2" android:textColor="@color/frontcolor"
   android:textSize="20sp"/>
  <TextView android:layout_width="50dip" android:layout_height="wrap_content"
   android:text="@string/tab3" android:textColor="@color/frontcolor"
   android:textSize="20sp"/>
  <TextView android:layout_width="150dip" android:layout_height="wrap_content"
   android:text="@string/tab4" android:textColor="@color/frontcolor"
   android:textSize="20sp"/>
  <TextView android:layout_width="220dip" android:layout_height="wrap_content"
   android:text="@string/tab5" android:textColor="@color/frontcolor"
   android:textSize="20sp"/>
  <TextView android:layout_width="120dip" android:layout_height="wrap_content"
   android:text="@string/tab6" android:textColor="@color/frontcolor"
   android:textSize="20sp"/>
 </LinearLayout>
 <ListView android:id="@+id/pressureData" android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:layout_weight="1" />
</LinearLayout>

 

tab选项卡中view视图布局

 

 

3,设置listview的布局

 

 

 

<?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="fill_parent"
 android:orientation="horizontal">
 <TextView android:id="@+id/tx1"  android:layout_width="140dip"
  android:layout_height="wrap_content" android:text=""
  android:textColor="@color/white" android:textSize="20sp"/>
 <TextView android:id="@+id/tx2" android:layout_width="150dip"
  android:layout_height="wrap_content" android:text=""
  android:textColor="@color/white" android:textSize="20sp"/>
 <TextView android:id="@+id/tx3" android:layout_width="50dip"
  android:layout_height="wrap_content" android:text=""
  android:textColor="@color/white" android:textSize="20sp"/>
 <TextView android:id="@+id/tx4" android:layout_width="150dip"
  android:layout_height="wrap_content" android:text=""
  android:textColor="@color/white" android:textSize="20sp"/>
 <TextView android:id="@+id/tx5" android:layout_width="220dip"
  android:layout_height="wrap_content" android:text=""
  android:textColor="@color/white" android:textSize="20sp"/>
 <TextView android:id="@+id/tx6" android:layout_width="120dip"
  android:layout_height="wrap_content" android:text=""
  android:textColor="@color/white" android:textSize="20sp"/>
</LinearLayout>
主视图下的一个listview中填充的小view

 

4,获取要填充的数据填充到listview中去

 

//自定义适配器

public class PressureAdapter extends BaseAdapter {
  Context mContext;
  JSONArray jsonObj;

  public PressureAdapter(Context mContext, JSONArray jsonObj) {
   super();
   this.mContext = mContext;
   this.jsonObj = jsonObj;
  }

  @Override
  public int getCount() {
   return jsonObj.length();
  }

  @Override
  public Object getItem(int position) {
   return position;
  }

  @Override
  public long getItemId(int position) {
   return position;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   LayoutInflater mInflater = getLayoutInflater();
   View view = mInflater.inflate(R.layout.pressure_data, null);
   TextView tx1 = (TextView) view.findViewById(R.id.tx1);//获取listview布局中的view子项ID并且赋值
   TextView tx2 = (TextView) view.findViewById(R.id.tx2);
   TextView tx3 = (TextView) view.findViewById(R.id.tx3);
   TextView tx4 = (TextView) view.findViewById(R.id.tx4);
   TextView tx5 = (TextView) view.findViewById(R.id.tx5);
   TextView tx6 = (TextView) view.findViewById(R.id.tx6);
   try {
    tx1.setText(jsonObj.getJSONObject(position).getString(
      "systolic"));
    tx2.setText(jsonObj.getJSONObject(position).getString(
      "diastolic"));
    tx3.setText(jsonObj.getJSONObject(position).getString("pulse"));
    tx4.setText(jsonObj.getJSONObject(position).getString(
      "bodyTemperature"));
    tx5.setText(jsonObj.getJSONObject(position).getString(
      "dateTime"));
    tx6.setText(jsonObj.getJSONObject(position).getString("tcText"));
   } catch (JSONException e) {

    e.printStackTrace();
   }
   return view;
  }
 }

 

附带:

list = (ListView) findViewById(R.id.pressureData);
  host.setCurrentTab(0);  //设置当前被选中选项
  list.setAdapter(createAdapter("7"));
  host.setOnTabChangedListener(new OnTabChangeListener() {

   @Override
   public void onTabChanged(String tabId) {//选项切换事件
    if (host.getCurrentTab() == 0) {         
     list.setAdapter(createAdapter("7"));
    }
    if (host.getCurrentTab() == 1) {         
     list.setAdapter(createAdapter("15"));
    }
    if (host.getCurrentTab() == 2) {       
     list.setAdapter(createAdapter("30"));
    }
    if (host.getCurrentTab() == 3) {     
     list.setAdapter(createAdapter("90"));
    }
    if (host.getCurrentTab() == 4) {     
     list.setAdapter(createAdapter("180"));
    }
    if (host.getCurrentTab() == 5) {
     list.setAdapter(createAdapter("360"));
    }
   }
  });


    
[2] 兑现滚动切换的阻尼效果
    来源: 互联网  发布时间: 2014-02-18
实现滚动切换的阻尼效果

类似launcher的多屏切换效果,看了launcher的源码后,

发现主要使用了Scroller类来实现屏幕滚动,

 

在sroller的构造函数中加一个加速器参数

inpl=new OvershootInterpolator();

this.scroller = new Scroller(context,inpl);

 

就有阻尼效果了。

关于源码,可以在google code上找到,实现屏幕切换的是Workspace.java类。

 


    
[3] Bit地图和Drawable相互转换方法[转]
    来源: 互联网  发布时间: 2014-02-18
Bitmap和Drawable相互转换方法[转]

原文链接:http://www.android123.com.cn/kaifafaq/704.html

 

一、Bitmap转Drawable

Bitmap bm=xxx; //xxx根据你的情况获取
BitmapDrawable bd= new BitmapDrawable(getResource(), bm);

因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。

 

二、 Drawable转Bitmap

转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保存成为jpg和png的文件。

Drawable d=xxx; //xxx根据自己的情况获取drawable
BitmapDrawable bd = (BitmapDrawable) d;
Bitmap bm = bd.getBitmap();

最终bm就是我们需要的Bitmap对象了。

1 楼 夏止忧伤 2012-04-20  
谢谢,楼主……
2 楼 olv 2012-06-05  
very well.

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android根据电话号码获得联系人头像实例代码 iis7站长之家
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3