Tag: 自定义视图

自定义视图的多选列表?

我见过来自ApiDemos的示例com.example.android.apis.view.List11 。 在这个例子中,每一行都是android.R.simple_list_item_multiple_choice视图。 每个这样的视图都有一个TextView和一个CheckBox 。 现在我希望每个视图都有2个TextView和1个CheckBox ,这和List3的例子有点类似。 我试图创build一个自定义的布局文件row.xml像这样: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <CheckBox android:id="@+id/checkbox" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="fill_parent" /> <TextView android:id="@+id/text_name" android:textSize="13px" android:textStyle="bold" android:layout_toLeftOf="@id/checkbox" android:layout_alignParentLeft="true" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/text_phone" android:textSize="9px" android:layout_toLeftOf="@id/checkbox" android:layout_below="@id/text_name" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout> 然后在Activity的onCreate() ,我这样做: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Query the contacts mCursor = […]

如何获得在代码中的attrs.xml中创build的枚举

我用enumtypes的declare-styleable属性创build了一个自定义View(在这里find它)。 在XML中,我现在可以select我的自定义属性的枚举条目之一。 现在我想创build一个方法来设置此值编程,但我不能访问枚举。 attr.xml <declare-styleable name="IconView"> <attr name="icon" format="enum"> <enum name="enum_name_one" value="0"/> …. <enum name="enum_name_n" value="666"/> </attr> </declare-styleable> layout.xml <com.xxx.views.IconView android:id="@+id/heart_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="enum_name_x"/> 我需要的是这样的: mCustomView.setIcon(R.id.enum_name_x); 但我找不到枚举,或者我甚至不知道如何获得枚举的枚举或名称。 谢谢

Android ImageView大小不能与源图像缩放

我有一个LinearLayout内的几个ImageViews。 我需要缩小ImageViews,以便在垂直方向上适应LinearLayout的同时保持纵横比。 水平地,我只是需要他们彼此相邻。 我为此做了一个简化的testing平台,它嵌套了加权布局,以便为ImageView提供一个很宽但不是很高的LinearLayout, <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="5"> <LinearLayout android:id="@+id/linearLayout3" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="1"> <ImageView android:id="@+id/imageView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/test_image" android:scaleType="fitStart"></ImageView> <ImageView android:id="@+id/imageView2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/test_image" android:scaleType="fitStart"></ImageView> </LinearLayout> <LinearLayout android:id="@+id/linearLayout4" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="1"></LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"></LinearLayout> </LinearLayout> (在Eclipse布局编辑器中,图像垂直剪切,根本不缩放 – 但这只是我们学会爱的那些特质之一) 在硬件上运行时,图像缩放到正确的高度,同时保持其高宽比。 我的问题是,他们不是彼此相邻。 每个ImageView的高度正确匹配LinearLayout的高度。 每个ImageView的宽度是未缩放图像的宽度 – […]

自定义视图的相机

我的应用程序使用相机,我想添加覆盖在相机预览。 例如,我想在使用相机时使用相框,我也想为相机操作添加一个自定义栏。 请帮助我也这样做。

Android自定义视图构造函数

我正在学习如何使用自定义视图: http://developer.android.com/guide/topics/ui/custom-components.html#modifying 描述说: 类初始化一如既往,超级被称为第一。 而且,这不是一个默认的构造函数,而是一个参数化的构造函数。 当EditText从一个XML布局文件中被膨胀时,这些参数被创build,因此,我们的构造函数也需要把它们传递给超类的构造函数。 有更好的描述吗? 我一直在试图弄清楚构造函数应该是什么样子,而且我已经提出了4种可能的select(请参阅文章末尾的示例)。 我不确定这四个select做了什么(或不这样做),为什么我要实现它们,或者参数是什么意思。 有没有这些描述? public MyCustomView() { super(); } public MyCustomView(Context context) { super(context); } public MyCustomView(Context context, AttributeSet attrs) { super(context, attrs); } public MyCustomView(Context context, AttributeSet attrs, Map params) { super(context, attrs, params); }