当前位置: 编程技术>移动开发
本页文章导读:
▪Drawable、Bitmap、byte[]其间的转换(转载) Drawable、Bitmap、byte[]之间的转换(转载)
1.Drawable → Bitmappublic static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .crea.........
▪ ListView分页兑现(回调) ListView分页实现(回调)
ListView的分页很实用,实现也有很多种,我琢磨了一下要么监听ListView是否滚动到底部,如果滚动到底部,则加载下一页的数据,要么弄两个按钮,上一页和下一页.........
▪ 怎么运营好一个网站 如何运营好一个网站
网站运营介绍现如今建一个网站,并不难我想大家也并不陌生吧,就算你不会做网站现在这时代找网站建设公司做一个也用不了多少钱。而建立网站简单怎么运营就难道.........
[1]Drawable、Bitmap、byte[]其间的转换(转载)
来源: 互联网 发布时间: 2014-02-18
Drawable、Bitmap、byte[]之间的转换(转载)
1.Drawable → Bitmap
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
2.Bitmap → byte[]
private byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
3.byte[] → Bitmap
private Bitmap Bytes2Bimap(byte[] b){
if(b.length!=0){
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
else {
return null;
}
}
1.Drawable → Bitmap
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
2.Bitmap → byte[]
private byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
3.byte[] → Bitmap
private Bitmap Bytes2Bimap(byte[] b){
if(b.length!=0){
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
else {
return null;
}
}
[2] ListView分页兑现(回调)
来源: 互联网 发布时间: 2014-02-18
ListView分页实现(回调)
ListView的分页很实用,实现也有很多种,我琢磨了一下要么监听ListView是否滚动到底部,如果滚动到底部,则加载下一页的数据,要么弄两个按钮,上一页和下一页,感觉这一个是引用了WEB页面的习惯。由于手机屏幕有限,所以我不喜欢第二中,而且实现起来也比较麻烦,未减少流量和加载速度,还要检测数据是否已经加载过了。
我介绍一下我的实现:基于回调来实现分页加载;
回调函数只负责显示下一页的按钮,按钮显示几秒后自动消失,
用户点击按钮,则加载下一页的数据。
下面是实现的Activity:
这里是回调函数的接口:
这里是适配器类:
模拟的元数据大家可以根据自己的需要进行修改,为方便大家查看这个实现是否是大家需要的,下面的截图供大家参考:
第一页数据:
当列表置底时,显示下一页按钮:
点击下一页按钮,加载下一页数据(上一页的数据仍在),注意page 的值:
写码笔记-欢迎交流
ListView的分页很实用,实现也有很多种,我琢磨了一下要么监听ListView是否滚动到底部,如果滚动到底部,则加载下一页的数据,要么弄两个按钮,上一页和下一页,感觉这一个是引用了WEB页面的习惯。由于手机屏幕有限,所以我不喜欢第二中,而且实现起来也比较麻烦,未减少流量和加载速度,还要检测数据是否已经加载过了。
我介绍一下我的实现:基于回调来实现分页加载;
回调函数只负责显示下一页的按钮,按钮显示几秒后自动消失,
用户点击按钮,则加载下一页的数据。
下面是实现的Activity:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; public class BookListActivity extends Activity { private ListView listView; private LinearLayout baseLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ui_books); baseLayout = (LinearLayout) findViewById(R.id.root); listView = (ListView) findViewById(R.id.listView); adapter = new BookListAdapter(BookListActivity.this, new NextPageCallBack() { public void nextPage() { handler.sendEmptyMessage(SHOW);// 显示下一页的按钮 handler.sendEmptyMessageDelayed(DISMISS, 3000);// 按钮显示3秒钟后,自动消失 } }); listView.setAdapter(adapter);// 设置adapter adapter.notifyDataSetChanged();// 数据更改的通知 // 实际开发无此方法 initData(); // 加载下一页的数据,此时为加载第一页的数据 nextPage(); } private BookListAdapter adapter; // 当前的页数 private int pageNow = 0; // 获取下一页的数据并显示在List里 private void nextPage() { if (pageNow < source.size()) { // 模拟获取数据:可从网络或本地获取 ArrayList<HashMap<String, Object>> newData = source.get(pageNow++); // 向适配器里追加内容 adapter.appendItem(newData); adapter.notifyDataSetChanged();// 数据更改的通知 } } // 下一页的按钮 private PopupWindow nextBtnPopup; // 下一页按钮显示 private void showNextButton() { if (nextBtnPopup == null) { View root = this.getLayoutInflater().inflate(R.layout.popup_next, null); nextBtnPopup = new PopupWindow(root, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); nextBtnPopup.setAnimationStyle(R.style.next_in_out);// 淡入淡出的效果,可以取消 nextBtnPopup.update(); ((Button) root.findViewById(R.id.btnNext))// 用户单击了下一页的按钮 .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { nextPage();// 获取下一页的数据 handler.sendEmptyMessage(DISMISS);// 下一页的按消失 } }); } // 置底显示 nextBtnPopup.showAtLocation(baseLayout, Gravity.BOTTOM, 0, 0); } // 下一页按钮消失 private void dismissNextButton() { if (nextBtnPopup != null) { nextBtnPopup.dismiss(); } } private final int SHOW = 1; private final int DISMISS = 0; private Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case SHOW: showNextButton(); break; case DISMISS: dismissNextButton(); break; } } }; // 按下标值来存放每一页的数据 private List<ArrayList<HashMap<String, Object>>> source; // 初始化数据源,实际开发无此方法 private void initData() { source = new ArrayList<ArrayList<HashMap<String, Object>>>(); for (int p = 0; p < 4; p++) {// 有4页的数据 ArrayList<HashMap<String, Object>> page = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < 15; i++) {// 每页有15条数据 HashMap<String, Object> item = new HashMap<String, Object>(); item.put("name", "page:" + p); item.put("author", "book:" + i); page.add(item); } source.add(page); } } }
这里是回调函数的接口:
public interface NextPageCallBack { public void nextPage(); }
这里是适配器类:
import java.util.ArrayList; import java.util.HashMap; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class BookListAdapter extends BaseAdapter { private ArrayList<HashMap<String, Object>> listItems; private Context mContext; private LayoutInflater inflater; private NextPageCallBack nextPageCallBack; public BookListAdapter(Context context, NextPageCallBack nextPageCallBack) { this.mContext = context; this.nextPageCallBack = nextPageCallBack; inflater = LayoutInflater.from(this.mContext); listItems = new ArrayList<HashMap<String, Object>>(); } public void appendItem(ArrayList<HashMap<String, Object>> listItems) { this.listItems.addAll(listItems); Log.i("TAG", this.listItems.size() + ""); } @Override public int getCount() { return listItems.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } private class BookItem { public ImageView ivPicture; public TextView tvBookName; public TextView tvBookAuthor; } @Override public View getView(int position, View convertView, ViewGroup parent) { BookItem item = null; if (position == getCount() - 1) { nextPageCallBack.nextPage(); } if (convertView == null) { item = new BookItem(); convertView = inflater.inflate(R.layout.item_book, null); item.ivPicture = (ImageView) convertView .findViewById(R.id.ivBookPicture); item.tvBookName = (TextView) convertView .findViewById(R.id.tvBookName); item.tvBookAuthor = (TextView) convertView .findViewById(R.id.tvBookAuthor); convertView.setTag(item); } else { item = (BookItem) convertView.getTag(); } item.ivPicture.setImageDrawable(mContext.getResources().getDrawable( R.drawable.ic_launcher)); item.tvBookName.setText(listItems.get(position).get("name").toString()); item.tvBookAuthor.setText(listItems.get(position).get("author") .toString()); return convertView; } }
模拟的元数据大家可以根据自己的需要进行修改,为方便大家查看这个实现是否是大家需要的,下面的截图供大家参考:
第一页数据:
当列表置底时,显示下一页按钮:
点击下一页按钮,加载下一页数据(上一页的数据仍在),注意page 的值:
写码笔记-欢迎交流
[3] 怎么运营好一个网站
来源: 互联网 发布时间: 2014-02-18
如何运营好一个网站
网站运营介绍
现如今建一个网站,并不难我想大家也并不陌生吧,就算你不会做网站现在这时代找网站建设公司做一个也用不了多少钱。而建立网站简单怎么运营就难道很多人了,尤其是已经拥有自己网站的企业和机构,而运营网站却往往是比较陌生的。
网站作为互联网的一个宣传平台,本身并不能创造价值,只有企业的客户群体在互联网上很容易的找到企业网站,才能创造价值,那么,如何更方便的找到企业呢,网站运营就是网站推广的最为重要的手段。
网站的运营从某种程度上也反映了企业的管理水平,是体现企业在信息化时代是否具有信息化管理理念的主要依据。因此,网站运营应当融入企业的整体经营体系中,使网络与原有的机制有机结合,这样才能发挥网站及网络营销的商业潜力。
网络运营项目
网站策划,网站设计,网页制作,网站编辑,网络营销,优化
一般企业的网站也就分为这些营运项目
网络运营策略
定位:想做好一个网站前期必须做好调查和分析,来确定你网站的发展方向。
团队:有了好的网站也得必须有一流团队否则你的网站一样会被网络所遗弃,好的团队会根据网站内容确定一个高效的网站运营。
服务:网站要盈利肯定是要网站能让客户接受并产生价值,网站内容为王;
发展:当网站规模扩大时,掌控网站自身及运营团队的建设与管理;
创新:网站瞬息万变,网站应步入持续发展创新阶段;
稳定:如果客户经常打不开网站,所有的努力都会前功尽弃。
如果你的站做好了这些我想你离成功就不远了,让我们努力好做每一步吧。
本篇文章由哈尔滨网站建设、哈尔滨网站制作首发转载请注明,谢谢!
网站运营介绍
现如今建一个网站,并不难我想大家也并不陌生吧,就算你不会做网站现在这时代找网站建设公司做一个也用不了多少钱。而建立网站简单怎么运营就难道很多人了,尤其是已经拥有自己网站的企业和机构,而运营网站却往往是比较陌生的。
网站作为互联网的一个宣传平台,本身并不能创造价值,只有企业的客户群体在互联网上很容易的找到企业网站,才能创造价值,那么,如何更方便的找到企业呢,网站运营就是网站推广的最为重要的手段。
网站的运营从某种程度上也反映了企业的管理水平,是体现企业在信息化时代是否具有信息化管理理念的主要依据。因此,网站运营应当融入企业的整体经营体系中,使网络与原有的机制有机结合,这样才能发挥网站及网络营销的商业潜力。
网络运营项目
网站策划,网站设计,网页制作,网站编辑,网络营销,优化
一般企业的网站也就分为这些营运项目
网络运营策略
定位:想做好一个网站前期必须做好调查和分析,来确定你网站的发展方向。
团队:有了好的网站也得必须有一流团队否则你的网站一样会被网络所遗弃,好的团队会根据网站内容确定一个高效的网站运营。
服务:网站要盈利肯定是要网站能让客户接受并产生价值,网站内容为王;
发展:当网站规模扩大时,掌控网站自身及运营团队的建设与管理;
创新:网站瞬息万变,网站应步入持续发展创新阶段;
稳定:如果客户经常打不开网站,所有的努力都会前功尽弃。
如果你的站做好了这些我想你离成功就不远了,让我们努力好做每一步吧。
本篇文章由哈尔滨网站建设、哈尔滨网站制作首发转载请注明,谢谢!
最新技术文章: