IconCheckBoxPreference: 一个带有图标的CheckBox preference

 
 
这篇文章原文是在https://gist.github.com/515681。主要是代码,没有其他文字说明,转到这里来,希望对看到的人有用。 下面是用到的xml布局文件。
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+android:id/widget_frame" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize"> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6dip" android:layout_marginRight="6dip" android:layout_gravity="center" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="2dip" android:layout_marginRight="6dip" android:layout_marginTop="6dip" android:layout_marginBottom="6dip" android:layout_weight="1"> <TextView android:id="@+android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge" android:ellipsize="marquee" android:fadingEdge="horizontal" /> <TextView android:id="@+android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title" android:textAppearance="?android:attr/textAppearanceSmall" android:maxLines="2" /> </RelativeLayout> <CheckBox android:id="@+android:id/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="4dip" android:layout_gravity="center_vertical" android:focusable="false" android:clickable="false" /> </LinearLayout>


下面是用到的java类文件。
 
   
import android.content.Context; import android.graphics.drawable.Drawable; import android.preference.CheckBoxPreference; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import com.jakewharton.wakkawallpaper.R; public class IconCheckBoxPreference extends CheckBoxPreference { private Drawable mIcon; public IconCheckBoxPreference(final Context context, final AttributeSet attrs, final int defStyle) { super(context, attrs, defStyle); this.setLayoutResource(R.layout.icon_checkbox_preference); this.mIcon = context.obtainStyledAttributes(attrs, R.styleable.IconPreference, defStyle, 0).getDrawable(R.styleable.IconPreference_icon); } public IconCheckBoxPreference(final Context context, final AttributeSet attrs) { this(context, attrs, 0); } @Override protected void onBindView(final View view) { super.onBindView(view); final ImageView imageView = (ImageView)view.findViewById(R.id.icon); if ((imageView != null) && (this.mIcon != null)) { imageView.setImageDrawable(this.mIcon); } } /** * Sets the icon for this Preference with a Drawable. * * @param icon The icon for this Preference */ public void setIcon(final Drawable icon) { if (((icon == null) && (this.mIcon != null)) || ((icon != null) && (!icon.equals(this.mIcon)))) { this.mIcon = icon; this.notifyChanged(); } } /** * Returns the icon of this Preference. * * @return The icon. * @see #setIcon(Drawable) */ public Drawable getIcon() { return this.mIcon; } }
如果有需要做类似功能的朋友们可以参照此例进行修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值