保定网站建设多少钱哪家好,福田公司股票,电子商务网站建设含义,申请免费域名邮箱AdapterGridView学习 AdapterGridViewSimpleAdapterGridViewactivity_main.xmlappicon.xmlMainActivity 自定义BaseAdapterGridView已下载应用PackageInfoAppAdapterMainActivity2 其他获取已下载应用信息函数获取所有应用信息函数ImageView产生圆角的方法背景设置很渐变设置选… AdapterGridView学习 AdapterGridViewSimpleAdapterGridViewactivity_main.xmlappicon.xmlMainActivity 自定义BaseAdapterGridView已下载应用PackageInfoAppAdapterMainActivity2 其他获取已下载应用信息函数获取所有应用信息函数ImageView产生圆角的方法背景设置很渐变设置选择效果按压效果未选择效果 AdapterGridView
SimpleAdapterGridView
SimpleAdapterGridView 简单显示一组图片和名称
activity_main.xml
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:background#91F3F0LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_marginLeft30dpandroid:layout_marginTop30dpandroid:layout_marginRight30dpandroid:orientationverticalGridViewandroid:idid/gv_appandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:horizontalSpacing30dpandroid:numColumns6android:verticalSpacing30dp //LinearLayout
/LinearLayoutandroid:horizontalSpacing30dp横向间隔距离 android:numColumns6设置一行中有6列 android:verticalSpacing30dp纵向间隔距离
效果
appicon.xml
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:gravitycenterLinearLayoutandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:orientationverticalLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_weight1android:gravitycenterandroid:orientationverticalandroidx.cardview.widget.CardViewandroid:layout_width80dpandroid:layout_height80dpandroid:layout_gravitycenterandroid:layout_marginTop20dpandroid:gravitycenterapp:cardCornerRadius10dpapp:cardElevation0dpImageViewandroid:idid/iv_iconandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:scaleTypefitCenter //androidx.cardview.widget.CardView/LinearLayoutLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_weight1android:gravitycenterandroid:orientationverticalTextViewandroid:idid/tv_iconandroid:layout_widthwrap_contentandroid:layout_height23dpandroid:layout_belowid/iv_iconandroid:layout_gravitycenterandroid:layout_marginTop20dpandroid:layout_marginBottom20dpandroid:gravitycenterandroid:textnameandroid:textColorcolor/whiteandroid:textSize18sp //LinearLayout/LinearLayout
/LinearLayout其中androidx.cardview.widget.CardView使ImageView产生圆角效果
效果 MainActivity
package com.lxh.dialogtest;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends AppCompatActivity {private static final String TAG MainActivity lxh;private Context mContext;private GridView gv_app;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext MainActivity.this;gv_app (GridView) findViewById(R.id.gv_app);int[] appicons {R.drawable.ic_launcher_background, R.drawable.ic_launcher_background,R.drawable.ic_launcher_background, R.drawable.ic_launcher_background,R.drawable.ic_launcher_background, R.drawable.ic_launcher_background,R.drawable.ic_launcher_background, R.drawable.ic_launcher_background};String[] appnames {图标1, 图标2, 图标3, 图标4, 图标5, 图标6, 图标7, 图标8};ListMapString, Object listitems new ArrayList();for (int i 0; i appnames.length; i) {MapString, Object listitem new HashMap();listitem.put(icon, appicons[i]);listitem.put(name, appnames[i]);listitems.add(listitem);}SimpleAdapter simpleAdapter new SimpleAdapter(this, listitems, R.layout.appicon, new String[]{icon, name}, new int[]{R.id.iv_icon, R.id.tv_icon});gv_app.setAdapter(simpleAdapter);gv_app.setOnItemClickListener(new AdapterView.OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view, int position, long id) {Toast.makeText(mContext, 点击了第 position 项, Toast.LENGTH_SHORT).show();}});}
}效果如图
自定义BaseAdapterGridView已下载应用PackageInfo
activity_main.xml和appicon.xml不变
AppAdapter
package com.lxh.dialogtest;import android.content.Context;
import android.content.pm.PackageInfo;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import java.util.List;/*** create by lxh on 2023/12/12 Time9:42* tip:*/
public class AppAdapter extends BaseAdapter {private ListPackageInfo appList;Context context;public AppAdapter(ListPackageInfo appList, Context mcontext) {this.appList appList;this.context mcontext;}Overridepublic int getCount() {return appList.size();}Overridepublic Object getItem(int position) {return appList.get(position);}Overridepublic long getItemId(int position) {return position;}Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if (convertView null) {holder new ViewHolder();convertView LayoutInflater.from(context).inflate(R.layout.appicon, null);holder.appIcon convertView.findViewById(R.id.iv_icon);holder.appName convertView.findViewById(R.id.tv_icon);convertView.setTag(holder);} else {holder (ViewHolder) convertView.getTag();}PackageInfo pi (PackageInfo) getItem(position);holder.appIcon.setImageDrawable(pi.applicationInfo.loadIcon(context.getPackageManager()));holder.appName.setText(pi.applicationInfo.loadLabel(context.getPackageManager()).toString());return convertView;}static class ViewHolder {public ImageView appIcon;public TextView appName;}
}MainActivity2
package com.lxh.dialogtest;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class MainActivity2 extends AppCompatActivity {private static final String TAG MainActivity2 lxh;private Context mContext;private GridView gv_app;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext MainActivity2.this;gv_app (GridView) findViewById(R.id.gv_app);Appinfo get_InstallApp(mContext);if (Appinfo ! null) {gv_app.setAdapter(new AppAdapter(Appinfo, mContext));gv_app.setOnItemClickListener(new AdapterView.OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view, int position, long id) {Toast.makeText(mContext, 你点击了~ position ~项, Toast.LENGTH_SHORT).show();}});}}ListPackageInfo Appinfo null;public ListPackageInfo get_InstallApp(Context context) {ListPackageInfo installApp new ArrayList();ListPackageInfo packageInfos null;packageInfos context.getPackageManager().getInstalledPackages(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);for (PackageInfo packageInfo : packageInfos) {if ((packageInfo.applicationInfo.flags ApplicationInfo.FLAG_SYSTEM) 0) {installApp.add(packageInfo);}}return installApp;}
}效果如图
其他
获取已下载应用信息函数 public ListPackageInfo get_InstallApp(Context context) {ListPackageInfo installApp new ArrayList();ListPackageInfo packageInfos null;packageInfos context.getPackageManager().getInstalledPackages(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);for (PackageInfo packageInfo : packageInfos) {if ((packageInfo.applicationInfo.flags ApplicationInfo.FLAG_SYSTEM) 0) {installApp.add(packageInfo);}}return installApp;}获取所有应用信息函数 public ListPackageInfo get_allApp(Context context) {ListPackageInfo installApp new ArrayList();ListPackageInfo packageInfos null;packageInfos context.getPackageManager().getInstalledPackages(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);for (PackageInfo packageInfo : packageInfos) {installApp.add(packageInfo);}return installApp;}ImageView产生圆角的方法 androidx.cardview.widget.CardViewandroid:layout_width80dpandroid:layout_height80dpandroid:layout_gravitycenterandroid:layout_marginTop20dpandroid:gravitycenterapp:cardCornerRadius10dpapp:cardElevation0dpImageViewandroid:idid/iv_iconandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:scaleTypefitCenter //androidx.cardview.widget.CardView效果
背景设置很渐变
?xml version1.0 encodingutf-8?
selector xmlns:androidhttp://schemas.android.com/apk/res/androiditem android:state_focusedfalse android:state_pressedfalseshapegradient android:angle270 android:endColor#9D3DE1 android:startColor#4379E4 //shape/item
/selector效果
设置选择效果按压效果未选择效果 GridViewandroid:idid/gv_appandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:horizontalSpacing30dpandroid:numColumns6android:verticalSpacing30dpandroid:listSelectordrawable/cg_white/?xml version1.0 encodingutf-8?
selector xmlns:androidhttp://schemas.android.com/apk/res/androiditem android:state_focusedtrueshapecorners android:bottomLeftRadius10dp android:bottomRightRadius10dp android:topLeftRadius10dp android:topRightRadius10dp /stroke android:width2dp android:colorcolor/white //shape/itemitem android:state_pressedtrueshapecorners android:bottomLeftRadius10dp android:bottomRightRadius10dp android:topLeftRadius10dp android:topRightRadius10dp /stroke android:width2dp android:colorcolor/white //shape/itemitem android:state_focusedfalseshapecorners android:bottomLeftRadius10dp android:bottomRightRadius10dp android:topLeftRadius10dp android:topRightRadius10dp //shape/item
/selector效果
未完待续。。。
与君共勉待续 欢迎指错一起学习