listView中根据已有的一组坐标点动态的画出一条线,画完之后重复画 自定义View canvas canvas自定义View动态画线 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Activity中的代码public class MainActivity extends Activity { private boolean display = true; private ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); // 用来存储获取的应用信息数据 private ListView listview; private final static String TAG="MainActivity1"; private View view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); plintPkgAndCls(getPackageInfos()); listview=(ListView) findViewById(R.id.listGesture); listview.setAdapter(new TextImageAdapter(this,this.display)); /*LinearLayout layout1=(LinearLayout)findViewById(R.id.linear1); layout1.addView(new Surfaceview1(getApplicationContext()));*/ } @Override public void onBackPressed() { // TODO Auto-generated method stub display=false; super.onBackPressed(); } private void plintPkgAndCls(List<PackageInfo> PackageInfos) { for (int i = 0; i < PackageInfos.size(); i++) { AppInfo tmpInfo = new AppInfo(); tmpInfo.setPackageName(PackageInfos.get(i).packageName); tmpInfo.setMainActivityName(PackageInfos.get(i).activities[0].name); tmpInfo.setAppIcon(PackageInfos.get(i).applicationInfo .loadIcon(getPackageManager())); tmpInfo.setAppName(PackageInfos.get(i).applicationInfo .loadLabel(getPackageManager()).toString()); appList.add(tmpInfo); } } private List<PackageInfo> getPackageInfos() { List<PackageInfo> apps = new ArrayList<PackageInfo>(); PackageManager pManager = this.getPackageManager(); //获取手机内所有应用 List<PackageInfo> paklist = pManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES|PackageManager.GET_ACTIVITIES); for (int i = 0; i < paklist.size(); i++) { PackageInfo pak = paklist.get(i); //判断是否为非系统预装的应用程序 if ((pak.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { // customs applications apps.add(pak); } } return apps; } // 自定义listview显示图标和应用名 private class TextImageAdapter extends BaseAdapter { private Context mContext; private boolean display; public TextImageAdapter(Context context,boolean display) { this.mContext = context; this.display=display; } /** * 元素的个数 */ @Override public int getCount() { return appList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } // 用以生成在ListView中展示的一个个元素View @Override @SuppressLint("NewApi") public View getView(int position, View convertView, ViewGroup parent) { // LayoutInflater minflater = getLayoutInflater(); // convertView = minflater.inflate(R.layout.gg, null); // 优化ListView if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate( R.layout.gestureitem, null); ItemgestureViewCache viewCache = new ItemgestureViewCache(); viewCache.mText1 = (TextView) convertView .findViewById(R.id.text1); viewCache.mText2 = (TextView) convertView .findViewById(R.id.text2); viewCache.mgestureImage = (LinearLayout) convertView .findViewById(R.id.gestureImage); convertView.setTag(viewCache); } ItemgestureViewCache cache = (ItemgestureViewCache) convertView.getTag(); // 设置文本和图片,然后返回这个View,用于ListView的Item的展示 cache.mText1.setText(R.string.open); cache.mText2.setText(appList.get(position).getAppName()); cache.mgestureImage.addView(new Myview(getApplicationContext(),this.display)); return convertView; } } // 元素的缓冲类,用于优化ListView private static class ItemgestureViewCache { public TextView mText1; public TextView mText2; public LinearLayout mgestureImage; }} 如何调用系统中原有的闹钟铃声? 能解释一下算法中用到的 HashMap 吗? android图库读取SD卡中图片 关于android 多线程的问题 这种菜单怎么实现? iOS/Android 训练营:20位技术大牛实践分享,20场精品课程独家呈现! Windows下想搭Android开发环境,具体要下载那几个文件? 为什么中国移动要搞OMS! Android删除最近使用过的程序? 安卓在编辑xml界面的时候如果界面过长怎么拖到下面的界面进行编辑呢? 可不可以设置activity中的3d按钮旋转呢 No virtual keys found for device 问题求解
public class MainActivity extends Activity { private boolean display = true;
private ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); // 用来存储获取的应用信息数据
private ListView listview;
private final static String TAG="MainActivity1";
private View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
plintPkgAndCls(getPackageInfos());
listview=(ListView) findViewById(R.id.listGesture);
listview.setAdapter(new TextImageAdapter(this,this.display)); /*LinearLayout layout1=(LinearLayout)findViewById(R.id.linear1);
layout1.addView(new Surfaceview1(getApplicationContext()));*/
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
display=false;
super.onBackPressed();
}
private void plintPkgAndCls(List<PackageInfo> PackageInfos) {
for (int i = 0; i < PackageInfos.size(); i++) {
AppInfo tmpInfo = new AppInfo();
tmpInfo.setPackageName(PackageInfos.get(i).packageName);
tmpInfo.setMainActivityName(PackageInfos.get(i).activities[0].name);
tmpInfo.setAppIcon(PackageInfos.get(i).applicationInfo
.loadIcon(getPackageManager()));
tmpInfo.setAppName(PackageInfos.get(i).applicationInfo
.loadLabel(getPackageManager()).toString());
appList.add(tmpInfo);
}
}
private List<PackageInfo> getPackageInfos() {
List<PackageInfo> apps = new ArrayList<PackageInfo>();
PackageManager pManager = this.getPackageManager();
//获取手机内所有应用
List<PackageInfo> paklist = pManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES|PackageManager.GET_ACTIVITIES);
for (int i = 0; i < paklist.size(); i++) {
PackageInfo pak = paklist.get(i);
//判断是否为非系统预装的应用程序
if ((pak.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {
// customs applications
apps.add(pak);
}
}
return apps;
} // 自定义listview显示图标和应用名
private class TextImageAdapter extends BaseAdapter {
private Context mContext;
private boolean display; public TextImageAdapter(Context context,boolean display) {
this.mContext = context;
this.display=display;
} /**
* 元素的个数
*/
@Override
public int getCount() {
return appList.size();
} @Override
public Object getItem(int position) {
return null;
} @Override
public long getItemId(int position) {
return 0;
} // 用以生成在ListView中展示的一个个元素View
@Override
@SuppressLint("NewApi")
public View getView(int position, View convertView, ViewGroup parent) {
// LayoutInflater minflater = getLayoutInflater();
// convertView = minflater.inflate(R.layout.gg, null);
// 优化ListView
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.gestureitem, null);
ItemgestureViewCache viewCache = new ItemgestureViewCache();
viewCache.mText1 = (TextView) convertView
.findViewById(R.id.text1);
viewCache.mText2 = (TextView) convertView
.findViewById(R.id.text2);
viewCache.mgestureImage = (LinearLayout) convertView
.findViewById(R.id.gestureImage);
convertView.setTag(viewCache);
}
ItemgestureViewCache cache = (ItemgestureViewCache) convertView.getTag();
// 设置文本和图片,然后返回这个View,用于ListView的Item的展示
cache.mText1.setText(R.string.open);
cache.mText2.setText(appList.get(position).getAppName());
cache.mgestureImage.addView(new Myview(getApplicationContext(),this.display));
return convertView;
}
} // 元素的缓冲类,用于优化ListView
private static class ItemgestureViewCache {
public TextView mText1;
public TextView mText2;
public LinearLayout mgestureImage;
}}