精华内容
下载资源
问答
  • Android 底部切换
    2015-04-20 14:20:06
     底部跳转  刚看了一个开源的软件 ,人家仿的京东商城 , 底部的tab切换时用的         <RadioGroup
                android:id="@+id/home_radio_button_group"
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_gravity="bottom"
                android:background="@drawable/main_navigation_background"
                android:gravity="center_vertical"
                android:orientation="horizontal" >

                <RadioButton
                    android:id="@+id/home_tab_main"
                    style="@style/home_tab_bottom"
                    android:background="@drawable/home_tab_background_selector"
                    android:checked="true"
                    android:drawableTop="@drawable/home_tab_main_selector" />

                <RadioButton
                    android:id="@+id/home_tab_search"
                    style="@style/home_tab_bottom"
                    android:background="@drawable/home_tab_background_selector"
                    android:drawableTop="@drawable/home_tab_search_selector" />

                <RadioButton
                    android:id="@+id/home_tab_category"
                    style="@style/home_tab_bottom"
                    android:background="@drawable/home_tab_background_selector"
                    android:drawableTop="@drawable/home_tab_category_selector" />

                <RadioButton
                    android:id="@+id/home_tab_cart"
                    style="@style/home_tab_bottom"
                    android:background="@drawable/home_tab_background_selector"
                    android:drawableTop="@drawable/home_tab_cart_selector" />

                <RadioButton
                    android:id="@+id/home_tab_personal"
                    style="@style/home_tab_bottom"
                    android:background="@drawable/home_tab_background_selector"
                    android:drawableTop="@drawable/home_tab_personal_selector" />

            </RadioGroup>


    这还是首次看见 , 当年那个viewpager顶部的切换的时候 和这个的原理差不多,以后可以试试 ,这个主要是底部的那个滑动按钮的切换 比较好实现,当然网上还有其他的开源库,比这个可能实现的好 ,但是知道一种方法 就是 get了,这种底部tab的切换实现的方法 很多 ,自己可以写个布局 ,什么的都是可以实现的 ,但是这种方法感觉比较巧 。当然 其中个地方比较难搞,就是 ,假如是购物车的话 肯定有购物车上有个什么数字的 ,这个可能有点坑了。不过可以重写radiobutton控件 。


    当然这里有个管理activity的工具类也可以 了解下 ,package com.itau.jingdong;

    import java.util.Stack;
    import android.app.Activity;
    import android.app.ActivityManager;
    import android.content.Context;

    /**
     * @author Tau.Chen 陈涛
     *
     * @email tauchen1990@gmail.com,1076559197@qq.com
     *
     * @date 2013年9月12日
     *
     * @version V_1.0.0
     *
     * @description 应用程序Activity的管理类
     *
     */
    public class AppManager {
        private static Stack<Activity> mActivityStack;
        private static AppManager mAppManager;

        private AppManager() {
        }

        /**
         * 单一实例
         */
        public static AppManager getInstance() {
            if (mAppManager == null) {
                mAppManager = new AppManager();
            }
            return mAppManager;
        }

        /**
         * 添加Activity到堆栈
         */
        public void addActivity(Activity activity) {
            if (mActivityStack == null) {
                mActivityStack = new Stack<Activity>();
            }
            mActivityStack.add(activity);
        }

        /**
         * 获取栈顶Activity(堆栈中最后一个压入的)
         */
        public Activity getTopActivity() {
            Activity activity = mActivityStack.lastElement();
            return activity;
        }

        /**
         * 结束栈顶Activity(堆栈中最后一个压入的)
         */
        public void killTopActivity() {
            Activity activity = mActivityStack.lastElement();
            killActivity(activity);
        }

        /**
         * 结束指定的Activity
         */
        public void killActivity(Activity activity) {
            if (activity != null) {
                mActivityStack.remove(activity);
                activity.finish();
                activity = null;
            }
        }

        /**
         * 结束指定类名的Activity
         */
        public void killActivity(Class<?> cls) {
            for (Activity activity : mActivityStack) {
                if (activity.getClass().equals(cls)) {
                    killActivity(activity);
                }
            }
        }

        /**
         * 结束所有Activity
         */
        public void killAllActivity() {
            for (int i = 0, size = mActivityStack.size(); i < size; i++) {
                if (null != mActivityStack.get(i)) {
                    mActivityStack.get(i).finish();
                }
            }
            mActivityStack.clear();
        }

        /**
         * 退出应用程序
         */
        public void AppExit(Context context) {
            try {
                killAllActivity();
                ActivityManager activityMgr = (ActivityManager) context
                        .getSystemService(Context.ACTIVITY_SERVICE);
                activityMgr.restartPackage(context.getPackageName());
                System.exit(0);
            } catch (Exception e) {
            }
        }
    }

    当然 里面还有比较好的imageloader的介绍


        /**
         * 返回默认的参数配置
         *
         * @param isDefaultShow
         *            true:显示默认的加载图片 false:不显示默认的加载图片
         * @return
         */
        public static DisplayImageOptions initDisplayOptions(boolean isShowDefault) {
            DisplayImageOptions.Builder displayImageOptionsBuilder = new DisplayImageOptions.Builder();
            // 设置图片缩放方式
            // EXACTLY: 图像将完全按比例缩小的目标大小
            // EXACTLY_STRETCHED: 图片会缩放到目标大小
            // IN_SAMPLE_INT: 图像将被二次采样的整数倍
            // IN_SAMPLE_POWER_OF_2: 图片将降低2倍,直到下一减少步骤,使图像更小的目标大小
            // NONE: 图片不会调整
            displayImageOptionsBuilder.imageScaleType(ImageScaleType.EXACTLY);
            if (isShowDefault) {
                // 默认显示的图片
                displayImageOptionsBuilder.showStubImage(R.drawable.no_image);
                // 地址为空的默认显示图片
                displayImageOptionsBuilder
                        .showImageForEmptyUri(R.drawable.no_image);
                // 加载失败的显示图片
                displayImageOptionsBuilder.showImageOnFail(R.drawable.no_image);
            }
            // 开启内存缓存
            displayImageOptionsBuilder.cacheInMemory(true);
            // 开启SDCard缓存
            displayImageOptionsBuilder.cacheOnDisc(true);
            // 设置图片的编码格式为RGB_565,此格式比ARGB_8888快
            displayImageOptionsBuilder.bitmapConfig(Bitmap.Config.RGB_565);

            return displayImageOptionsBuilder.build();
        }


        /**
         * 异步图片加载ImageLoader的初始化操作,在Application中调用此方法
         *
         * @param context
         *            上下文对象
         * @param cacheDisc
         *            图片缓存到SDCard的目录,只需要传入SDCard根目录下的子目录即可,默认会建立在SDcard的根目录下
         */
        public static void initImageLoader(Context context, String cacheDisc) {
            // 配置ImageLoader
            // 获取本地缓存的目录,该目录在SDCard的根目录下
            File cacheDir = StorageUtils.getOwnCacheDirectory(context, cacheDisc);
            // 实例化Builder
            ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(
                    context);
            // 设置线程数量
            builder.threadPoolSize(3);
            // 设定线程等级比普通低一点
            builder.threadPriority(Thread.NORM_PRIORITY);
            // 设定内存缓存为弱缓存
            builder.memoryCache(new WeakMemoryCache());
            // 设定内存图片缓存大小限制,不设置默认为屏幕的宽高
            builder.memoryCacheExtraOptions(480, 800);
            // 设定只保存同一尺寸的图片在内存
            builder.denyCacheImageMultipleSizesInMemory();
            // 设定缓存的SDcard目录,UnlimitDiscCache速度最快
            builder.discCache(new UnlimitedDiscCache(cacheDir));
            // 设定缓存到SDCard目录的文件命名
            builder.discCacheFileNameGenerator(new HashCodeFileNameGenerator());
            // 设定网络连接超时 timeout: 10s 读取网络连接超时read timeout: 60s
            builder.imageDownloader(new BaseImageDownloader(context, 10000, 60000));
            // 设置ImageLoader的配置参数
            builder.defaultDisplayImageOptions(initDisplayOptions(true));

            // 初始化ImageLoader
            ImageLoader.getInstance().init(builder.build());
        }
    里面还看到一个晃动动画

    Animation translateAnimation = new TranslateAnimation(0, 10, 0, 0);
            translateAnimation.setInterpolator(new CycleInterpolator(counts));
            translateAnimation.setDuration(1000);

            return translateAnimation;

    counts 是设置晃动的次数,不过作者没有用 其他的东西 后面再看 ,提交源码



    更多相关内容
  • 本篇博客要分享的一个UI效果——实现底部切换标签,想必大家在一些应用上面遇到过这种效果了,最典型的就是微信了,可以左右滑动切换页面,也可以点击标签页滑动页面,它们是如何实现的呢,本篇博客为了简单只介绍...
  • 最近由于Android基础知识讲解需要,采用单Activity多Fragment实现类似QQ底部导航器示例,这种开发模式广泛应用于App开发,比如QQ,微信,新浪等,关于Android底部导航栏的实现方式特别多,实现也是五花八门,同时...
  • 现在很多android应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能。我们先看下该demo实例的框架图:其中各个类的作用以及资源...

    现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能。

    我们先看下该demo实例的框架图:

    0_13268680532Y6D.gif

    其中各个类的作用以及资源文件就不详细解释了,还有资源图片(在该Demo中借用了其它应用程序的资源图片)也不提供了,大家可以自行更换自己需要的资源图片。直接上各个布局文件或各个类的代码:

    [1]  res/layout目录下的 maintabs.xml 源码:

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

    android:gravity="center_vertical" android:layout_gravity="bottom" android:orientation="horizontal" android:id="@id/main_radio" android:background="@drawable/maintab_toolbar_bg"

    android:layout_width="fill_parent" android:layout_height="wrap_content">

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

    android:gravity="center_vertical" android:layout_gravity="bottom" android:orientation="horizontal" android:id="@id/main_radio" android:background="@drawable/maintab_toolbar_bg"

    android:layout_width="fill_parent" android:layout_height="wrap_content">

    [2] res/drawable 下的 home_btn_bg.xml 源码:

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

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

    [3] res/values 下的源码:

    dimens.xml源码

    10.0sp

    5.0dip

    2.0dip

    30.0sp

    100.0dip

    48.0dip

    20.0dip

    19.0dip

    10.0dip

    20.0dip

    10.0dip

    35.0dip

    74.0dip

    70.0dip

    13.299988dip

    20.0dip

    0.0dip

    20.0sp

    10.0dip

    50.0dip

    10.0sp

    5.0dip

    2.0dip

    30.0sp

    100.0dip

    48.0dip

    20.0dip

    19.0dip

    10.0dip

    20.0dip

    10.0dip

    35.0dip

    74.0dip

    70.0dip

    13.299988dip

    20.0dip

    0.0dip

    20.0sp

    10.0dip

    50.0dip

    drawables.xml源码:

    #fff4f4f4

    #fffff4db

    #ff000000

    #00000000

    @android:color/transparent

    #99000000

    #fff4f4f4

    #ff272727

    #ff333333

    #fff4f4f4

    #fffff4db

    #ff000000

    #00000000

    @android:color/transparent

    #99000000

    #fff4f4f4

    #ff272727

    #ff333333

    ids.xml源码:

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    strings.xml源码:

    Hello World, MainTabActivity!

    TabDemo

    消息

    首页

    更多

    时间

    好友

    Hello World, MainTabActivity!

    TabDemo

    消息

    首页

    更多

    时间

    好友

    styles.xml源码:

    @dimen/bottom_tab_font_size

    #ffffffff

    marquee

    center_horizontal

    @drawable/home_btn_bg

    @dimen/bottom_tab_padding_up

    2.0dip

    fill_parent

    wrap_content

    2.0dip

    @null

    true

    @dimen/bottom_tab_padding_drawable

    1.0

    @dimen/bottom_tab_font_size

    #ffffffff

    marquee

    center_horizontal

    @drawable/home_btn_bg

    @dimen/bottom_tab_padding_up

    2.0dip

    fill_parent

    wrap_content

    2.0dip

    @null

    true

    @dimen/bottom_tab_padding_drawable

    1.0

    [4] src/com.andyidea.tabdemo包下面各个UI界面类源码:

    MainTabActivity.java源码:

    package com.andyidea.tabdemo;

    import android.app.TabActivity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.Window;

    import android.widget.CompoundButton;

    import android.widget.RadioButton;

    import android.widget.CompoundButton.OnCheckedChangeListener;

    import android.widget.TabHost;

    public class MainTabActivity extends TabActivity implements OnCheckedChangeListener{

    private TabHost mTabHost;

    private Intent mAIntent;

    private Intent mBIntent;

    private Intent mCIntent;

    private Intent mDIntent;

    private Intent mEIntent;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.maintabs);

    this.mAIntent = new Intent(this,AActivity.class);

    this.mBIntent = new Intent(this,BActivity.class);

    this.mCIntent = new Intent(this,CActivity.class);

    this.mDIntent = new Intent(this,DActivity.class);

    this.mEIntent = new Intent(this,EActivity.class);

    ((RadioButton) findViewById(R.id.radio_button0))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button1))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button2))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button3))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button4))

    .setOnCheckedChangeListener(this);

    setupIntent();

    }

    @Override

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    if(isChecked){

    switch (buttonView.getId()) {

    case R.id.radio_button0:

    this.mTabHost.setCurrentTabByTag("A_TAB");

    break;

    case R.id.radio_button1:

    this.mTabHost.setCurrentTabByTag("B_TAB");

    break;

    case R.id.radio_button2:

    this.mTabHost.setCurrentTabByTag("C_TAB");

    break;

    case R.id.radio_button3:

    this.mTabHost.setCurrentTabByTag("D_TAB");

    break;

    case R.id.radio_button4:

    this.mTabHost.setCurrentTabByTag("MORE_TAB");

    break;

    }

    }

    }

    private void setupIntent() {

    this.mTabHost = getTabHost();

    TabHost localTabHost = this.mTabHost;

    localTabHost.addTab(buildTabSpec("A_TAB", R.string.main_home,

    R.drawable.icon_1_n, this.mAIntent));

    localTabHost.addTab(buildTabSpec("B_TAB", R.string.main_news,

    R.drawable.icon_2_n, this.mBIntent));

    localTabHost.addTab(buildTabSpec("C_TAB",

    R.string.main_manage_date, R.drawable.icon_3_n,

    this.mCIntent));

    localTabHost.addTab(buildTabSpec("D_TAB", R.string.main_friends,

    R.drawable.icon_4_n, this.mDIntent));

    localTabHost.addTab(buildTabSpec("MORE_TAB", R.string.more,

    R.drawable.icon_5_n, this.mEIntent));

    }

    private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,

    final Intent content) {

    return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel),

    getResources().getDrawable(resIcon)).setContent(content);

    }

    }

    package com.andyidea.tabdemo;

    import android.app.TabActivity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.Window;

    import android.widget.CompoundButton;

    import android.widget.RadioButton;

    import android.widget.CompoundButton.OnCheckedChangeListener;

    import android.widget.TabHost;

    public class MainTabActivity extends TabActivity implements OnCheckedChangeListener{

    private TabHost mTabHost;

    private Intent mAIntent;

    private Intent mBIntent;

    private Intent mCIntent;

    private Intent mDIntent;

    private Intent mEIntent;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.maintabs);

    this.mAIntent = new Intent(this,AActivity.class);

    this.mBIntent = new Intent(this,BActivity.class);

    this.mCIntent = new Intent(this,CActivity.class);

    this.mDIntent = new Intent(this,DActivity.class);

    this.mEIntent = new Intent(this,EActivity.class);

    ((RadioButton) findViewById(R.id.radio_button0))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button1))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button2))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button3))

    .setOnCheckedChangeListener(this);

    ((RadioButton) findViewById(R.id.radio_button4))

    .setOnCheckedChangeListener(this);

    setupIntent();

    }

    @Override

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    if(isChecked){

    switch (buttonView.getId()) {

    case R.id.radio_button0:

    this.mTabHost.setCurrentTabByTag("A_TAB");

    break;

    case R.id.radio_button1:

    this.mTabHost.setCurrentTabByTag("B_TAB");

    break;

    case R.id.radio_button2:

    this.mTabHost.setCurrentTabByTag("C_TAB");

    break;

    case R.id.radio_button3:

    this.mTabHost.setCurrentTabByTag("D_TAB");

    break;

    case R.id.radio_button4:

    this.mTabHost.setCurrentTabByTag("MORE_TAB");

    break;

    }

    }

    }

    private void setupIntent() {

    this.mTabHost = getTabHost();

    TabHost localTabHost = this.mTabHost;

    localTabHost.addTab(buildTabSpec("A_TAB", R.string.main_home,

    R.drawable.icon_1_n, this.mAIntent));

    localTabHost.addTab(buildTabSpec("B_TAB", R.string.main_news,

    R.drawable.icon_2_n, this.mBIntent));

    localTabHost.addTab(buildTabSpec("C_TAB",

    R.string.main_manage_date, R.drawable.icon_3_n,

    this.mCIntent));

    localTabHost.addTab(buildTabSpec("D_TAB", R.string.main_friends,

    R.drawable.icon_4_n, this.mDIntent));

    localTabHost.addTab(buildTabSpec("MORE_TAB", R.string.more,

    R.drawable.icon_5_n, this.mEIntent));

    }

    private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,

    final Intent content) {

    return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel),

    getResources().getDrawable(resIcon)).setContent(content);

    }

    }

    其中 AActivity.java 与 BActivity.java ,CActivity.java ,DActivity.java ,EActivity.java 中的源码都一样,只是用来表示不同的界面展示,故这里只列出 AActivity.java的源码:

    package com.andyidea.tabdemo;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.Gravity;

    import android.widget.TextView;

    public class AActivity extends Activity{

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    TextView tv = new TextView(this);

    tv.setText("This is A Activity!");

    tv.setGravity(Gravity.CENTER);

    setContentView(tv);

    }

    }

    package com.andyidea.tabdemo;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.Gravity;

    import android.widget.TextView;

    public class AActivity extends Activity{

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    TextView tv = new TextView(this);

    tv.setText("This is A Activity!");

    tv.setGravity(Gravity.CENTER);

    setContentView(tv);

    }

    }

    最后,大家别忘了在 AndroidManifest.xml 文件中注册各个 Activity 组件哦。好了,现在我们看下我们程序运行的效果图:

    0_1326869514222b.gif

    到此就实现了一个比较流行的底部导航栏的功能了,转载请注明出处,谢谢大家!

    由于需要该实例源码的童鞋比较多,我还是把源码放到资源中供大家下载:http://download.csdn.net/detail/cjjky/4236055

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    展开全文
  • 在主流app中,应用的主界面都是底部含有多个标签的导航栏,点击可以切换到相应的界面,如图: 接下来将描述下其实现过程。 1.首先是分析界面,底部导航栏我们可以用一个占满屏幕宽度、包裹着数个标签TextView、方向...
  • Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用....
  • android切换默认应用There are all kinds of ways to add shortcuts to settings, functions, apps, and so on,to your Android device’s home screens, but few do so much as the toggle folder widget. ...
    android切换默认应用

    android切换默认应用

    There are all kinds of ways to add shortcuts to settings, functions, apps, and so on, to your Android device’s home screens, but few do so much as the toggle folder widget.

    有多种方法可以将设置,功能,应用等的快捷方式添加到Android设备的主屏幕上,但很少有方法可以像切换文件夹小部件那样。

    The toggle folder widget lets you add all sorts of toggles to various things like the flashlight, brightness controls, Wi-Fi, data syncing, and much more. Additionally, there’s the ability to add app shortcuts, and even custom shortcuts so you can have a toggle folder full of Gmail labels, or Google Maps directions, and other similar items.

    切换文件夹小部件可让您将各种切换添加到各种事物中,例如手电筒,亮度控件,Wi-Fi,数据同步等等。 此外,还可以添加应用程序快捷方式甚至自定义快捷方式,因此您可以拥有一个充满Gmail标签,Google地图路线和其他类似项目的切换文件夹。

    Once you add the toggle folder to your home screen, you’ll be able to customize it before you commit. The one thing you’ll definitely want to do is give it a name. Since you can add as many toggle folders as your home screens can handle, it should reflect what you want to place in the folder.

    将切换文件夹添加到主屏幕后,您便可以在提交之前对其进行自定义。 您绝对想做的一件事就是给它起一个名字。 由于您可以添加主屏幕可以处理的任意数量的切换文件夹,因此它应该反映出您想要在文件夹中放置的内容。

    2015-03-06 17.47.12

    You might also want to choose a pre-made theme, which feature different button colors, backgrounds, and transparencies.

    您可能还想选择一个预设主题,该主题具有不同的按钮颜色,背景和透明胶片。

    If you don’t like the button colors, let’s say you’re a big fan of cool colors like green, blue, and purple, then you can easily change them. The left color will represent buttons when they’re inactive, middle is for busy status, and right indicates something is on or active.

    如果您不喜欢按钮颜色,可以说您是绿色,蓝色和紫色等冷色的忠实拥护者,那么您可以轻松地进行更改。 左侧的颜色表示按钮处于非活动状态,中间的按钮表示忙碌状态,右侧的颜色表示按钮处于开启或活动状态。

    You can also change the color of your button labels’ text, or tap “Hidden” and you won’t see any labels at all.

    您还可以更改按钮标签文本的颜色,或点击“隐藏”,您将根本看不到任何标签。

    2015-03-06 17.50.04

    Finally, at the bottom of the widget configuration, you can decide whether you want to use the default button background, or a custom image.

    最后,在小部件配置的底部,您可以决定要使用默认按钮背景还是自定义图像。

    2015-03-06 17.50.04-1

    If you do choose an image, you can then adjust its positioning. In this example, since we chose a theme with a blue background image, we can decide how it stretches to fit the widget, as well as how much padding is placed around it. Play around with this a bit, especially if you decide to really get into customizing your toggle folder’s appearance.

    如果确实选择图像,则可以调整其位置。 在此示例中,由于我们选择了带有蓝色背景图像的主题,因此我们可以决定其拉伸方式以适合该小部件以及在其周围放置多少填充。 试一试,特别是如果您决定真正定制切换文件夹的外观时。

    When you’re finished customizing your toggle folder, tap “Done” and you’ll now see it on your home screen. We’ve given ours the name “Kitchen Sink” because we’re just going to create a folder with all sorts of stuff in it.

    完成自定义切换文件夹后,点击“完成”,您现在将在主屏幕上看到它。 我们给我们起了个名字“ Kitchen Sink”,因为我们将要创建一个包含各种东西的文件夹。

    What kind of stuff? Tap the widget and then “Add” to find out.

    什么样的东西? 点击小部件,然后点击“添加”以查找。

    Like we said, you can add toggles of all variety and function. You can, for example, add a mobile data toggle, Wi-Fi, Bluetooth, etc. You can basically add anything that is meant or can be turned on or off.

    就像我们说的,您可以添加各种功能的切换键。 例如,您可以添加移动数据切换开关,Wi-Fi,蓝牙等。您基本上可以添加任何可以或可以打开或关闭的内容。

    Want app shortcuts? You can do that too with whatever is installed on your device. Obviously the difference between this method and simply using a default app stack (such as when you press and hold an app shortcut and drop it onto another to create a group or folder) is that you can mix apps and toggles.

    需要应用程序快捷方式吗? 您也可以使用设备上安装的任何内容来执行此操作。 显然,此方法与仅使用默认应用程序堆栈(例如,按住某个应用程序快捷方式并将其放到另一个快捷方式上以创建组或文件夹)之间的区别在于,您可以混合使用应用程序和切换。

    You can also add custom shortcuts. This is just a small representation, but you see you can have a whole toggle folder full of contacts that you can directly dial or message. You can also add quick map direction, like if you were taking a trip and wanted to have places already mapped out ahead of time.

    您还可以添加自定义快捷方式。 这只是一个很小的表示,但是您看到可以有一个完整的切换文件夹,其中充满了可以直接拨打或发送消息的联系人。 您还可以添加快速的地图方向,例如您正在旅行并且想要提前规划好地点。

    There’s many more functions here, so you should definitely check it out when you’re setting up your own toggle folders.

    这里还有更多功能,因此在设置自己的切换文件夹时,一定要检查一下。

    2015-03-06 17.36.52

    Finally, once you have items added to your folder, you can further customize it. Press and hold an icon and you can move it around and reorder things. You also see you get a little context menu that allows you to, at the very least, delete it or change its icon. If it’s an app shortcut, you can also rename it.

    最后,将项目添加到文件夹后,您可以进一步对其进行自定义。 按住图标,您可以移动它并重新排序。 您还会看到一个小的上下文菜单,该菜单至少允许您删除它或更改其图标。 如果它是应用程序快捷方式,则也可以重命名。

    Note here, we see the options you have when you change an icon. You can choose among application icons, pick a pre-made image, or customize your own.

    请注意,当您更改图标时,我们会看到您拥有的选项。 您可以在应用程序图标中选择,选择预制图像或自定义自己的图像。

    Toggle folders are only limited by the choices available and your imagination.

    切换文件夹仅受可用选项和您的想象力的限制。

    Indeed, they’re a really convenient way to add tons of functionality to your device without, for example, converting to something like Cyanogenmod, or downloading some app from the Play Store that lets you do essentially the same thing.

    确实,它们是一种非常便捷的方法,可以为您的设备添加大量功能,而无需例如转换为Cyanogenmod之类的东西,或者从Play商店下载某些应用程序,从而使您基本上可以做同样的事情。

    We want to hear from you now. Do you use the toggle folder widget? Did you even know about it? Talk to us in our discussion forum. We welcome your comments and questions.

    我们希望现在能收到您的来信。 您是否使用切换文件夹小部件? 你甚至知道吗? 在我们的论坛中与我们交谈。 我们欢迎您提出意见和问题。

    翻译自: https://www.howtogeek.com/211361/how-to-add-quick-setting-toggles-and-apps-to-android’s-home-screen/

    android切换默认应用

    展开全文
  • 有多种方法可以将设置,功能,应用等的快捷方式添加到Android设备中切换文件夹小部件允许您添加各种切换到手电筒,亮度控制,Wi-Fi,数据同步等各种各样的切换。另外,那里当您将切换文件夹添加到主屏幕后,即可一件...

    71b5c0fc49b11409877cc5972a473247.gif

    有多种方法可以将设置,功能,应用等的快捷方式添加到Android设备中

    切换文件夹小部件允许您添加各种切换到手电筒,亮度控制,Wi-Fi,数据同步等各种各样的切换。另外,那里

    71b5c0fc49b11409877cc5972a473247.gif

    当您将切换文件夹添加到主屏幕后,即可一件事你由于您可以添加与主屏幕可以处理的更多的切换文件夹,因此它应该反映您想要放置在文件夹中的内容。

    71b5c0fc49b11409877cc5972a473247.gif

    您可能还想选择一个预制主题,其中具有不同的按钮颜色,背景和透明度。

    71b5c0fc49b11409877cc5972a473247.gif

    如果你没有左边的颜色会表示按钮

    您也可以更改按钮标签的颜色

    71b5c0fc49b11409877cc5972a473247.gif

    最后,在窗口小部件配置的底部,您可以决定是使用默认按钮背景还是使用自定义图像。

    71b5c0fc49b11409877cc5972a473247.gif

    如果您选择图像,则可以调整其位置。在这个例子中,由于我们选择了一个带有蓝色背景图像的主题,所以我们可以决定它如何拉伸以适应窗口小部件,以及它周围放置多少。玩弄这一点,特别是如果你决定真正进入自定义你的切换文件夹

    71b5c0fc49b11409877cc5972a473247.gif

    当你我们

    71b5c0fc49b11409877cc5972a473247.gif

    什么样的东西?然后点击小部件

    71b5c0fc49b11409877cc5972a473247.gif

    我们说,您可以添加各种功能的切换。例如,您可以添加移动数据切换,Wi-Fi,蓝牙等。您基本上可以添加任何可以打开或关闭的东西。

    71b5c0fc49b11409877cc5972a473247.gif

    应用程序的捷径?您也可以使用设备上安装的任何操作来执行此操作。显然,这种方法与简单地使用默认应用程序堆栈(例如当您按住应用程序快捷方式并将其拖放到另一个应用程序创建组或文件夹时)之间的区别在于可以混合应用程序和切换。

    71b5c0fc49b11409877cc5972a473247.gif

    您还可以添加自定义快捷方式。这只是一个小的表示,但是你看到你可以有一个完整的切换文件夹,可以直接拨打或发送消息。您还可以添加快速地图方向,就像您正在旅行一样,并希望让地点已经提前映射。

    There

    71b5c0fc49b11409877cc5972a473247.gif

    最后,一旦你的项目添加到你的文件夹,你可以进一步定制它。按住一个图标,您可以移动它并重新排列东西。您还可以看到您得到一个上下文菜单,允许您至少删除它或更改其图标。如果它

    71b5c0fc49b11409877cc5972a473247.gif

    请注意,在更改图标时,我们会看到您所选择的选项。您可以选择应用程序图标,选择预制图像或自定义您自己的图像。

    71b5c0fc49b11409877cc5972a473247.gif

    Toggle文件夹只受到可用选项和您的想象力的限制。

    他们

    我们现在想听到你的声音。你使用切换文件夹小部件吗?你甚至知道吗在我们的讨论区与我们交谈。我们欢迎您的意见和问题。

    ."

    展开全文
  • 本实例完成了App底部导航菜单自由滑动,仿微信主界面,可直接应用于项目开发。
  • 很多android应用底部都有一个底部导航栏,方便用户在使用过程中随意切换。目前常用的做法有三种:一种是使用自定义tabHost,一种是使用activityGroup,一种是结合FrameLayout实现。笔者再做了多款应用后,为了节约...
  • android初学者When you run an app on your Android device, you can minimize it and return to the home screen easily by touching or pressing the Home button. However, what if you want to quickly get to ...
  • Android底部导航栏的实现方式这里主要总结了3种,代码尽量追求精简,可以直接拷贝使用,便于大家比较选择。1.BottomNavigationView实现底部导航栏<1>首先在gradle文件中添加依赖,implementation'...
  • Android应用切换语言

    2021-06-09 10:01:58
    最近接触到Android 应用切换语言的问题,研究了两天,做个记录先。实现了中文,英文,泰语的切换。测试机器 Nexus5(Android p),HUAWEI荣耀9青春版(8.0.0),XIAOMI mi 4LTE(6.0.1)。看下效果language.gif完整的例子...
  • Android开发-两种方式实现Android应用底部Tab标签栏

    千次阅读 多人点赞 2019-09-03 15:50:28
    在我们日常使用的Android应用中,几乎所有的应用都使用到底部Tab标签栏,比如微信、淘宝、支付宝等。而他们实现的方式又大同小异,实现底部Tab标签栏无非有两种方式,一是使用“show()和hide()控制Fragment”方式,...
  • 现在很多android应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能。 我们先看下该demo实例的框架图: 其中各个类的作用以及...
  • Android底部导航栏,三种风格和实现

    万次阅读 多人点赞 2018-07-07 12:36:53
    一、效果图展示 如果动图没有动的...二、BottomNavigationView 这是 Google 给我们提供的一个专门用于底部导航的 View,你只需要在新建 Activity 的时候选择 “Bottom Navigation Activity”,IDE 就会自动使用 Bo...
  • 现在很多android应用都采用底部导航栏的功能这样可以使得用户在使用过程中随意切换不同的页面现在我采用TabHost组件来自定义一个底部的导航栏的功能 我们先看下该demo实例的框架图 其中各个类的作用以及资源文件就...
  • 超简单,几行代码搞定Android底部导航栏—–应项目需求以及小伙伴的留言,新加了两个方法:设置底部导航栏背景图片添加底部导航栏选项卡切换监听事件底部导航栏的实现也不难,就是下边是几个Tab切换,上边一般是一个...
  • 本资源为使用ViewPager和Fragment实现页面切换底部导航栏的效果源码,建议配合Android应用开发--底部导航栏效果的一种实现方式(ViewPager&Fragment)文章查看。
  • iqoo如何切换后台应用?iqoo的起步运存配置是6G,而且还有8G和12G的配置,在这种大容量运存的支持下用户可以同时开启多个后台应用,然后在这几个应用中自由切换,这样可以省去重新开启应用的时间。接下来的文章中小编...
  • Android 五种方式实现Android底部导航栏 https://segmentfault.com/a/1190000007697941 Android应用底部导航栏(选项卡)实例 现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同...
  • 在Activity中使用底部导航栏BottomNavigationView 步骤一:在菜单文件中定义底部导航菜单选项内容 1.1 新建menu文件menu_bottom_nav.xml(src/main/res/menu/menu_bottom_nav.xml) 1.2 构建menu_bottom_nav.xml(src...
  • android切换默认应用When you have multiple applications that do the same thing—like browsers, for example—Android will ask you which one you want to use every time, at least until you set one as the ...
  • Android底部导航栏实现

    万次阅读 多人点赞 2020-06-12 23:48:26
    Android底部导航栏实现底部导航栏使用Fragment实现底部导航栏效果展示相关概念介绍:Fragment的使用FragmentManager简介Fragment实现底部导航栏代码实现MainActivity.class :核心Activity四个页面对应的Fragment底部...
  • Android动画的一个实战内容,从屏幕底部滑动弹出PopupWindow。 相信这种效果大家在很多APP上都遇到过,比如需要拍照或者从SD卡选择图片,再比如需要分享某些东西时,大多会采用这么一种效果:那这种效果如何实现呢?...
  • 今天项目中遇到了一个FragmentTabHost实现底部切换,FragmentTabHost来自于android.support.v4.app这个包下,继承自 TabHost ,并且实现了 TabHost.OnTabChangeListener 接口。文档上也直接放了两个例子。一个是...
  • android app安卓应用实例:起始页+fragment底部导航栏+ViewPager滑动切换+个人信息界面
  • Android应用主题切换详解

    千次阅读 2018-04-26 00:00:00
    小米6X采用时下主流的5.99英寸18:9全面屏设计,全金属机身采用“隐形”天线和底部全对称设计,机身厚度为7.3mm,一共有赤焰红、流沙金、冰川蓝、曜石黑以及樱花粉五种配色。 作者简介 本篇来自  陈小缘  的投稿,...
  • 接上一篇的博文:Android fragment 切换加载数据卡顿问题,想到的办法就是把切换之前的fragmenthide隐藏起来,就可以解决卡顿的问题,不用重新new一个fragment。由于左侧悬浮菜单有差不多10多个菜单,如果每一个菜单...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,421
精华内容 6,568
关键字:

安卓底部切换应用