您的位置:首页 > 移动开发 > Android开发

android自定义组合控件,参考Launcher中FolderIcon构成,欢迎拍砖。

2014-04-19 11:20 302 查看
目的:制作一个自定义的组合控件,该控件由其它控件构成,类似GroupView中的多个view,在使用组合控件的时候,只需要构造一个自定义组合控件就行。



代码:

appitem_view.xml:

<?xml version="1.0" encoding="utf-8"?>

<CustomView xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<ImageView

android:id="@+id/appicon"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

<TextView

android:id="@+id/appname"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

</CustomView>

CustomView.java

import android.content.Context;

import android.util.AttributeSet;

import android.view.LayoutInflater;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

public class CustomView extends LinearLayout {

ImageView img;

TextView tv;

Context mContext;

public CustomView(Context context, AttributeSet attrs) {

super(context, attrs);

mContext = context;

// TODO Auto-generated constructor stub

}

public CustomView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

mContext = context;

// TODO Auto-generated constructor stub

}

public CustomView(Context context) {

super(context);

mContext = context;

// TODO Auto-generated constructor stub

}

public static CustomView fromXml(Context context,int resId,int imgId,String name){

CustomView cv = (CustomView) LayoutInflater.from(context).inflate(resId, null);

cv.img = (ImageView) cv.findViewById(R.id.appicon);

cv.tv = (TextView) cv.findViewById(R.id.appname);

cv.img.setBackgroundResource(imgId);

cv.tv.setText(name);

return cv;

}

}

主Activity代码:

CustomView cview = CustomView.fromXml(getApplicationContext(), R.layout.appitem_view, R.drawable.ic_launcher, "hello world");

setContentView(cview);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: