ByteUtil

[b][color=red]开发者博客:[url]http://www.developsearch.com[/url][/color][/b]

/**
* 字节转化工具类
*
* @author chenxin
* @version [版本号, 2012-5-21]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class ByteUtil {

/**
* 把16进制字符串转换成字节数组
* <功能详细描述>
* @param hex String
* @return byte[]
* @see [类、类#方法、类#成员]
*/
public static byte[] hexString2Bytes(String hex)
{
int len = (hex.length() / 2);
byte[] result = new byte[len];
char[] achar = hex.toCharArray();
for (int i = 0; i < len; i++)
{
int pos = i * 2;
result[i] = (byte)(char2Byte(achar[pos]) << 4 | char2Byte(achar[pos + 1]));
}
return result;
}

private static byte char2Byte(char ch)
{
switch (ch)
{
case '0':
return 0x00;
case '1':
return 0x01;
case '2':
return 0x02;
case '3':
return 0x03;
case '4':
return 0x04;
case '5':
return 0x05;
case '6':
return 0x06;
case '7':
return 0x07;
case '8':
return 0x08;
case '9':
return 0x09;
case 'a':
return 0x0A;
case 'b':
return 0x0B;
case 'c':
return 0x0C;
case 'd':
return 0x0D;
case 'e':
return 0x0E;
case 'f':
return 0x0F;
}
return 0x00;
}

/**
* 字节数组 转化成 16进制字符串
* <功能详细描述>
* @param b byte[]
* @return String
* @see [类、类#方法、类#成员]
*/
public static String bytes2hexString(byte[] b)
{
String stmp = null;
StringBuffer buf = new StringBuffer();

for (int n = 0; n < b.length; n++)
{
stmp = Integer.toHexString(b[n] & 0xff);
if (1 == stmp.length())
{
stmp = "0" + stmp;
}

buf.append(stmp);
}
return buf.toString();
}


// 整数到字节数组转换
public static byte[] int2bytes(int n)
{
byte[] ab = new byte[4];
ab[0] = (byte)(0xff & n);
ab[1] = (byte)((0xff00 & n) >> 8);
ab[2] = (byte)((0xff0000 & n) >> 16);
ab[3] = (byte)((0xff000000 & n) >> 24);
return ab;
}

// 字节数组到整数的转换
public static int bytes2int(byte b[])
{
int s = 0;
s = ((((b[0] & 0xff) << 8 | (b[1] & 0xff)) << 8) | (b[2] & 0xff)) << 8 | (b[3] & 0xff);
return s;
}

// 字节转换到字符
public static char byte2char(byte b)
{
return (char)b;
}


}
这段代码是一个适配器中的一个方法,用于绑定数据到视图上。具体解释如下: 1. `BaseViewHolder holder`:这个参数是一个ViewHolder对象,它包含了视图中所有的控件,可以通过它来获取和操作控件。 2. `AppInfoOV packageEntity`:这个参数是一个数据实体对象,包含了展示在这个视图上的所有数据。 3. `int position`:这个参数表示当前视图的位置。 4. `View itemView = holder.getItemView();`:获取当前视图的根View。 5. `itemView.setOnClickListener(this);`:设置当前视图的点击事件监听器为当前适配器对象。 6. `itemView.setTag(position);`:给当前视图设置一个Tag,值为当前视图的位置。 7. `TextView labelView = (TextView) holder.getView(R.id.uninstall_label);`:获取当前视图中id为`uninstall_label`的TextView控件。 8. `Drawable drawable = packageEntity.getIcon();`:从数据实体对象中获取一个Drawable对象。 9. `drawable.setBounds(0, 0, 60, 60);`:设置Drawable对象的边界。 10. `labelView.setCompoundDrawables(drawable, null, null, null);`:设置TextView控件左侧的图标为上一步获取的Drawable对象。 11. `labelView.setText(packageEntity.getLabel());`:设置TextView控件的文本为数据实体对象中的标签。 12. `ProgressBar progressBar = (ProgressBar) holder.getView (R.id.uninstall_package_size_index);`:获取当前视图中id为`uninstall_package_size_index`的ProgressBar控件。 13. `int packageSize = (int) Math.ceil(log2(packageEntity.getUseSize()));`:计算数据实体对象中使用的空间大小,并向上取整。 14. `progressBar.setProgress(packageSize);`:设置ProgressBar控件的进度为上一步计算的大小。 15. `TextView memSizeView = (TextView) holder.getView(R.id.uninstall_package_size);`:获取当前视图中id为`uninstall_package_size`的TextView控件。 16. `memSizeView.setText(ByteUtil.getPrintSize(packageEntity.getUseSize()));`:设置TextView控件的文本为数据实体对象中使用的空间大小转换后的字符串。 17. `CheckBox checkBox = (CheckBox) holder.getView(R.id.uninstall_check_box);`:获取当前视图中id为`uninstall_check_box`的CheckBox控件。 18. `checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {`:设置CheckBox控件的选中状态变化监听器。 19. `datas.get(position).setChecked(isChecked);`:当CheckBox控件的选中状态发生变化时,将数据实体对象中对应位置的isChecked属性设置为变化后的状态。 20. `checkBox.setChecked(datas.get(position).isChecked());`:设置CheckBox控件的选中状态为数据实体对象中对应位置的isChecked属性的值。 21. `if (packageEntity.isThirdPackage() && !packageEntity.isWhiteApp()) { checkBox.setVisibility(View.VISIBLE); }`:如果数据实体对象中表示当前应用是第三方应用,并且不是白名单应用,则显示CheckBox控件。 22. `else { checkBox.setVisibility(View.GONE); }`:否则,隐藏CheckBox控件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值