今日头条

author author     2022-09-17     513

关键词:

<resources>
    <string name="app_name">头条</string>
    <string name="openDrawer">今日头条</string>    <string name="closeDrawer">用户目录</string>
</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">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/splash"/>


</LinearLayout>
/**splash
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawerLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">




    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <!--标签布局-->
        <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabGravity="center"
            app:tabTextColor="@color/colorPrimary"
            app:tabIndicatorColor="@android:color/transparent"
            app:tabSelectedTextColor="@color/colorAccent"
            app:tabMode="scrollable">

        </android.support.design.widget.TabLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/vp"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </android.support.v4.view.ViewPager>



    </LinearLayout>


    <!--  菜单栏选项-->
    <ListView
        android:id="@+id/leftDrawer"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/colorPrimary">

    </ListView>

</android.support.v4.widget.DrawerLayout>



/**main_Activity
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.daytwo">
<uses-permission android:name="android.permission.INTERNET"/>
    <application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true" android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".HomeActivity"/>
    </application>

</manifest>
/***manifo
package com.example.daytwo.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;


public class Fragment1 extends Fragment {


    private static final String PAGE_TITLE = "PAGE_TITLE";
    private String title;


    public static Fragment1 newInstance(String title){

        Bundle bundle = new Bundle();
        bundle.putString(PAGE_TITLE,title);
        Fragment1 fragment1 = new Fragment1();
        fragment1.setArguments(bundle);
        return fragment1;

    }


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //当Fragemnt一旦被创建,我就可以接受对方传递过来的值
        title = getArguments().getString(PAGE_TITLE);


    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        TextView textView = new TextView(getActivity());
        textView.setText(title);
        textView.setTextSize(50);


        return textView;
    }
}
//fragment1
package com.example.daytwo;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;

/**
 * Created by hp on 2017/8/31.
 */

public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏标题栏
        //getSupportActionBar().hide();
        //标题栏
        ActionBar actionBar = getSupportActionBar();
        //显示箭头
        actionBar.setDisplayHomeAsUpEnabled(true);

    }
}
package com.example.daytwo;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.example.daytwo.fragment.Fragment1;

import java.util.ArrayList;
import java.util.List;


public class HomeActivity extends BaseActivity implements AdapterView.OnItemClickListener {


    private DrawerLayout drawerLayout;
    private ListView leftDrawer;
    private List<String> list = new ArrayList<String>();
    private ArrayAdapter<String> adapter;
    private ActionBarDrawerToggle toggle;
    private final String[] mTitles = new String[]{"推荐","热点","北京","科技","军事","视频","社会"};
    private ViewPager vp;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
    }

    /**
     * 初始化数据
     */
    private void initData() {


        for (int i = 0; i < 5; ++i) {
            list.add("泡妞0" + i);
        }


    }

    /**
     * 初始化View
     */
    private void initView() {


        drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        leftDrawer = (ListView) findViewById(R.id.leftDrawer);
        //初始化ActionBar
        //参数1:上下文
        //参数2:抽屉
        //参数3:打开抽屉的描述
        //参数4:关闭抽屉的描述
        toggle = new ActionBarDrawerToggle(this,drawerLayout, R.string.openDrawer,R.string.closeDrawer);
        //设置状态同步
        toggle.syncState();
        //设置抽屉打开关闭监听
        drawerLayout.addDrawerListener(toggle);
        //设置适配器
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
        leftDrawer.setAdapter(adapter);
        leftDrawer.setOnItemClickListener(this);


        //找到标签布局控件
        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);

        for (String str : mTitles)
        {
            //更具标签数生成标签
            tabLayout.addTab(tabLayout.newTab().setText(str));
        }

        //TabLayout关联ViewPager
        vp = (ViewPager) findViewById(R.id.vp);
        vp.setAdapter(new MyFragmentAdapter(getSupportFragmentManager()));
        //让TabLayout发生关联
        tabLayout.setupWithViewPager(vp);



    }

    //重写该方法,监听actionbar 条目监听(箭头、三个横线)
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //如果抽屉打开,点击按钮,就会关闭,反之亦然
        return toggle.onOptionsItemSelected(item) | super.onOptionsItemSelected(item);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        //关闭抽屉
        drawerLayout.closeDrawer(leftDrawer);
    }



    class MyFragmentAdapter extends FragmentPagerAdapter{

        public MyFragmentAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {



            return Fragment1.newInstance(mTitles[position]);
        }

        @Override
        public int getCount() {
            return mTitles.length;
        }

        //重写该方法,显示标签字体 bug
        @Override
        public CharSequence getPageTitle(int position) {
            return mTitles[position];
        }
    }







}
//**H
package com.example.daytwo;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.RelativeLayout;

public class MainActivity extends BaseActivity {

    private RelativeLayout rl;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        //隐藏action
        getSupportActionBar().hide();


        //动画结束,跳转9
        Intent intent = new Intent(MainActivity.this, HomeActivity.class);
        startActivity(intent);


       /* rl = (RelativeLayout) findViewById(R.id.rl);

        playAnim(rl);*/


    }

    /**
     * 播放动画
     * @param view
     */
    private void playAnim(View view) {


        AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
        alphaAnimation.setDuration(2000);
        alphaAnimation.setFillAfter(true);
        view.startAnimation(alphaAnimation);
        alphaAnimation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {

                //动画结束,跳转
                Intent intent = new Intent(MainActivity.this, HomeActivity.class);
                startActivity(intent);

            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });


    }


}
apply plugin: ‘com.android.application‘

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"

    defaultConfig {
        applicationId "com.example.daytwo"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }
}

dependencies {
    compile fileTree(include: [‘*.jar‘], dir: ‘libs‘)
    androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2‘, {
        exclude group: ‘com.android.support‘, module: ‘support-annotations‘
    })
    compile ‘com.android.support:appcompat-v7:26.+‘
    compile ‘com.android.support.constraint:constraint-layout:1.0.2‘
    testCompile ‘junit:junit:4.12‘
    compile files(‘libs/xUtils-2.6.14.jar‘)
    compile ‘com.android.support:design:26.0.0-alpha1‘
}
android {
    useLibrary ‘org.apache.http.legacy‘
}

 

“今日头条”和“今日头条极速版”有啥不同?

...A面对客户人群不一样,界面不一样,功能体验不一样。今日头条界面比较复杂,体验功能更加多元化。今日头条极速版界面简单,功能体验比较少。今日头条:基于个性化推荐引擎技术,根据每个用户的兴趣、位置等多个维度... 查看详情

今日头条的惊惶时刻

今日头条到底怎么了?昨天上午,国家知识产权局用一纸决定书驳回了今日头条关于UC一条专利的无效宣告请求,这意味着今日头条很可能要面临巨额的专利侵权罚款。不过UC并不是唯一和今日头条“对簿公堂”的企业。在1月26... 查看详情

今日头条的核心架构解析

今日头条创立于2012年3月,到目前仅4年时间。从十几个工程师开始研发,到上百人,再到200余人。产品线由内涵段子,到今日头条,今日特卖,今日电影等产品线。一、产品背景今日头条是为用户提供个性化资讯客户端。下面就... 查看详情

今日头条

<resources><stringname="app_name">头条</string><stringname="openDrawer">今日头条</string><stringname="closeDrawer">用户目录</string></resources>/****/<?xmlvers 查看详情

今日头条爬虫

今日头条是一个js动态加载的网站,尝试了两种方式爬取,一是页面直接提取,一是通过接口提取:version1:直接页面提取#coding=utf-8#今日头条fromlxmlimportetreeimportrequestsimporturllib2,urllibdefget_url():url=‘https://www.toutiao.com/ch/news_hot/‘gl... 查看详情

如何在头条做营销:2022今日头条营销价值洞察报告.pdf(附下载链接)

本报告共包含如下四大部分:1、趋势:品牌内容营销难题;2、人群:今日头条人群特征;3、内容:今日头条内容生态;4、商业:今日头条商业生态。更多细节和行研干货资料请到小程序省时查报告中查看全文并下载。 查看详情

今日头条核心技术“个性推荐算法”揭秘

今日头条核心技术“个性推荐算法”揭秘最近面试华兴资本,他们比较关注今日头条算法的实现,今天特转载网上今日头条算法解密  【IT168 评论】互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,... 查看详情

go--今日头条架构

夏绪宏,今日头条架构师,专注对高性能大规模Web架构,云计算、性能优化、编程语言理论等方向,PHPcommitter,HHVM项目贡献者。2009加入百度,先后从事大规模IDC自运维设施建设、云计算平台的架构设计、贴吧业务性能优化、百... 查看详情

[新浪]今日头条被高估了吗?

今日头条被高估了吗?   欢迎关注“创事记”的微信订阅号:sinachuangshiji  文/华生  来源:砺石商业评论(ID:libusiness)  砺石导言  对于今日头条这样一家缺乏核心竞争力,并且始终头顶较大法律与道德风险... 查看详情

今日头条算法

...u014114990/article/details/48165781 日头条涉及到算法:(1)今日头条服务器1000台左右,通过代码实现的爬虫功能,在其他传媒的网站和门户上抓取各种信息。如果在网站上抓取到纸媒的内容,优先从纸媒门户上抓取信息(2)抓取... 查看详情

今日头条

今日头条新闻选择(省?市)城市北京上海天津重庆香港澳门台湾?更多安徽?更多福建?更多甘肃?更多广东?更多广西?更多贵州?更多海南?更多河北?更多河南?更多黑龙江?更多湖北?更多湖南?更多吉林?更多江苏?更多江西?更多辽宁?更多... 查看详情

今日头条

importrequestsimportreimportjsonimportosfromurllibimportrequestforiinrange(0,60,20):url=‘https://www.toutiao.com/search_content/?offset=&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=t 查看详情

超级简单的下载今日头条和西瓜视频的方法

我们每天用今日头条看新闻资讯,有时候看到一个视频,想要保存下来,但今日头条App里没有提供保存视频的功能。这个时候我们需要借助第三方工具来下载视频,今天介绍一个超级好用的工具,不需要安装任何软件和插件,并... 查看详情

怎么在今日头条上发布新闻,或者做广告投放的?

怎么在今日头条上发布新闻,或者做广告投放的?就是把信息,主动推送给用户的那种广告,或者新闻。广告投放自己不好做,要说自己在上边发新闻或许还可以今日头条如何发布文章?第一步,登陆今日头条官网申请账号第二... 查看详情

vue2.0仿今日头条开源项目

vue-toutiao这是用 vue.js2.0 高仿 今日头条 的移动端项目,结合了原生app的部分功能以及网页版。前言本人是 今日头条 的重度用户,在学习vue.js过程中,在GitHub上看到了很多高仿webapp的好项目。由此在有了一... 查看详情

今日头条推广入门必懂知识简介

尽管今日头条推广效果不错,但我发现很多广告主对其仍然不是很了解。为此,我以自己的操作经验出发,以帮助大家进一步了解今日头条推广。今日头条简介:今日头条创建于2012年,是目前国内移动互联网... 查看详情

今日头条——面试案例

今日头条面试案例1-数据结构中堆的概念,堆排序-死锁的概念,怎么避免死锁-ReentrantLock、synchronized和volatile(n面)-HashMap-singleTask启动模式-用到的一些开源框架,介绍一个看过源码的,内部实现过程。-消息机制实现-ReentrantLock... 查看详情

今日头条&58转转笔试

昨天参加今日头条和58转转的笔试,因为时间上有冲突,所以主要选择参加头条的笔试。 先说头条: 头条的题型:一道改错题三道编程题一道设计题 感受:做题目的的时候还是有点紧张的,因为突然遇到题目需要思... 查看详情