首页 技术 正文
技术 2022年11月7日
0 收藏 804 点赞 957 浏览 9651 个字
全屏启动页activity_launcher<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@android:color/white"    tools:context="com.atguigu.android.LauncherActivity">    <ImageView        android:id="@+id/iv_icon"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:src="@drawable/atguigu_logo" />    <TextView        android:textColor="@android:color/black"        android:textSize="20sp"        android:layout_centerHorizontal="true"        android:layout_below="@id/iv_icon"        android:text="尚硅谷Android世界..."        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></RelativeLayout>首页标题栏titlebar<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="50dp"    android:background="@android:color/holo_blue_light"    android:gravity="center"    android:orientation="horizontal">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="尚硅谷知识库"        android:textColor="@android:color/white"        android:textSize="20sp" /></LinearLayout>tab页面activity_main选择器例1
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="false" android:drawable="@drawable/ic_tab_video"/><item android:state_checked="true" android:drawable="@drawable/ic_tab_video_press"/></selector>

bottom_textcolor_drawable_selector
<?xml version=”1.0″ encoding=”utf-8″?>
<selector xmlns:android=”http://schemas.android.com/apk/res/android”>
<item android:state_checked=”false” android:color=”#363636″/>
<item android:state_checked=”true” android:color=”#3097FD”/>


</selector>

 
自定义style
<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">        <!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item>    </style>    <style name="bottom_tag_style" >        <!-- Customize your theme here. -->        <item name="android:layout_width">wrap_content</item>        <item name="android:layout_height">wrap_content</item>        <item name="android:layout_weight">1</item>        <item name="android:button">@android:color/transparent</item>        <item name="android:drawablePadding">3dp</item>        <item name="android:gravity">center</item>        <item name="android:textColor">@drawable/bottom_textcolor_drawable_selector</item>        <item name="android:textSize">10sp</item>    </style></resources>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <!--标题栏-->    <include layout="@layout/titlebar" />    <!--FrameLayout-->    <FrameLayout        android:id="@+id/fl_content"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" />    <!--底部的RadioGroup-->    <RadioGroup        android:id="@+id/rg_main"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="#11000000"        android:gravity="center_vertical"        android:orientation="horizontal"        android:padding="5dp">        <RadioButton            android:id="@+id/rb_common_frame"            style="@style/bottom_tag_style"            android:drawableTop="@drawable/rb_common_frame_drawable_selector"            android:text="常用框架"            />        <RadioButton            android:id="@+id/rb_thirdparty"            style="@style/bottom_tag_style"            android:drawableTop="@drawable/rb_thirdparty_drawable_selector"            android:text="第三方"            />        <RadioButton            android:id="@+id/rb_custom"            style="@style/bottom_tag_style"            android:drawableTop="@drawable/rb_custom_drawable_selector"            android:text="自定义控件" />        <RadioButton            android:id="@+id/rb_other"            style="@style/bottom_tag_style"            android:drawableTop="@drawable/rb_other_drawable_selector"            android:text="其他" />    </RadioGroup></LinearLayout>listview fragmentfragment_common_fragmen.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent" android:layout_height="match_parent">    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="match_parent"></ListView></RelativeLayout>

Android tab页制作

启动activitypublic class LauncherActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_launcher);        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                //在主线程中执行                startMainActivity();            }        }, 2000);    }    /**     * 启动主页面     */    private void startMainActivity() {        Intent intent = new Intent(this,MainActivity.class);        startActivity(intent);        //关闭当前页面        finish();    }}首页面public class MainActivity  extends FragmentActivity{    private RadioGroup mRg_main;    private List<BaseFragment> mBaseFragment;    /**     * 选中的Fragment的对应的位置     */    private int position;    /**     * 上次切换的Fragment     */    private Fragment mContent;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //初始化View        initView();        //初始化Fragment        initFragment();        //设置RadioGroup的监听        setListener();    }    private void setListener() {        mRg_main.setOnCheckedChangeListener(new MyOnCheckedChangeListener());        //设置默认选中常用框架        mRg_main.check(R.id.rb_common_frame);    }    class MyOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {        @Override        public void onCheckedChanged(RadioGroup group, int checkedId) {            switch (checkedId){                case R.id.rb_common_frame://常用框架                    position = 0;                    break;                case R.id.rb_thirdparty://第三方                    position = 1;                    break;                case R.id.rb_custom://自定义                    position = 2;                    break;                case R.id.rb_other://其他                    position = 3;                    break;                default:                    position = 0;                    break;            }            //根据位置得到对应的Fragment            BaseFragment to = getFragment();            //替换            switchFrament(mContent,to);        }    }    /**     *     * @param from 刚显示的Fragment,马上就要被隐藏了     * @param to 马上要切换到的Fragment,一会要显示     */    private void switchFrament(Fragment from,Fragment to) {        if(from != to){            mContent = to;            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();            //才切换            //判断有没有被添加            if(!to.isAdded()){                //to没有被添加                //from隐藏                if(from != null){                    ft.hide(from);                }                //添加to                if(to != null){                    ft.add(R.id.fl_content,to).commit();                }            }else{                //to已经被添加                // from隐藏                if(from != null){                    ft.hide(from);                }                //显示to                if(to != null){                    ft.show(to).commit();                }            }        }    }//    private void switchFrament(BaseFragment fragment) {//        //1.得到FragmentManger//        FragmentManager fm = getSupportFragmentManager();//        //2.开启事务//        FragmentTransaction transaction = fm.beginTransaction();//        //3.替换//        transaction.replace(R.id.fl_content, fragment);//        //4.提交事务//        transaction.commit();//    }    /**     * 根据位置得到对应的Fragment     * @return     */    private BaseFragment getFragment() {        BaseFragment fragment = mBaseFragment.get(position);        return fragment;    }    private void initFragment() {        mBaseFragment = new ArrayList<>();        mBaseFragment.add(new CommonFrameFragment());//常用框架Fragment        mBaseFragment.add(new ThirdPartyFragment());//第三方Fragment        mBaseFragment.add(new CustomFragment());//自定义控件Fragment        mBaseFragment.add(new OtherFragment());//其他Fragment    }    private void initView() {        setContentView(R.layout.activity_main);        mRg_main = (RadioGroup) findViewById(R.id.rg_main);    }}
public abstract class BaseFragment extends Fragment {    /**     * 上下文     */    protected Context mContext;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mContext = getActivity();    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        return initView();    }    /**     * 强制子类重写,实现子类特有的ui     * @return     */    protected abstract View initView();    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        initData();    }    /**     * 当孩子需要初始化数据,或者联网请求绑定数据,展示数据的 等等可以重写该方法     */    protected void initData() {    }}
public class CommonFrameFragment extends BaseFragment {    private ListView mListView;    private String[] datas;    private CommonFrameFragmentAdapter adapter;    private static final String TAG = CommonFrameFragment.class.getSimpleName();//"CommonFrameFragment"    @Override    protected View initView() {        Log.e(TAG,"常用框架Fragment页面被初始化了...");        View view = View.inflate(mContext, R.layout.fragment_common_frame,null);        mListView = (ListView) view.findViewById(R.id.listview);        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {               String data =  datas[position];                Toast.makeText(mContext, "data=="+data, Toast.LENGTH_SHORT).show();            }        });        return view;    }    @Override    protected void initData() {        super.initData();        Log.e(TAG, "常用框架Fragment数据被初始化了...");        //准备数据        datas = new String[]{"OKHttp", "xUtils3","Retrofit2","Fresco","Glide","greenDao","RxJava","volley","Gson","FastJson","picasso","evenBus","jcvideoplayer","pulltorefresh","Expandablelistview","UniversalVideoView","....."};        //设置适配器        adapter = new CommonFrameFragmentAdapter(mContext,datas);        mListView.setAdapter(adapter);    }}public class CustomFragment extends BaseFragment {    private static final String TAG = CustomFragment.class.getSimpleName();//"CommonFrameFragment"    private TextView textView;    @Override    protected View initView() {        Log.e(TAG,"自定义Fragment页面被初始化了...");        textView = new TextView(mContext);        textView.setTextSize(20);        textView.setGravity(Gravity.CENTER);        textView.setTextColor(Color.RED);        return textView;    }    @Override    protected void initData() {        super.initData();        Log.e(TAG, "自定义Fragment数据被初始化了...");        textView.setText("自定义页面");    }}
public class CommonFrameFragmentAdapter extends BaseAdapter {    private final Context mContext;    private final String[] mDatas;    public CommonFrameFragmentAdapter(Context context,String[] datas){        this.mContext = context;        this.mDatas = datas;    }    @Override    public int getCount() {        return mDatas.length;    }    @Override    public Object getItem(int position) {        return null;    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        TextView textView = new TextView(mContext);        textView.setPadding(10,10,0,10);        textView.setTextColor(Color.BLACK);        textView.setTextSize(20);        textView.setText(mDatas[position]);        return textView;    }}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,145
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,617
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,461
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,236
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,871
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,952