展会信息港展会大全

IconCheckBoxPreference: 一个带有图标的CheckBox preference
来源:互联网   发布日期:2015-11-25 22:38:42   浏览:2748次  

导读:?xml version=1.0 encoding=UTF-8?LinearLayoutxmlns:android=http://schemas.android.com/apk/res/androidandroid:id=@+android:id/widget_frameandr...

<?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;

}

}

如果有需要做类似功能的朋友们可以参照此例进行修改。

赞助本站

人工智能实验室

相关热词: CheckBox preference

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港