recycle。mvp。动画。第三方。

 
欢迎动画页面
package com.bwei.com.lianxi.view; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.annotation. SuppressLint; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import com.bwei.com.lianxi.R; public class WelcomeActivity extends AppCompatActivity { private ImageView img; private ImageView img2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate( savedInstanceState); setContentView(R.layout. activity_welcome); img = findViewById(R.id. img_welcome); img2 = findViewById(R.id. img2_welcome); img2.setVisibility(View. INVISIBLE); final ObjectAnimator animator = ObjectAnimator. ofFloat( img, "rotationY", 0, 90); animator.setDuration( 1500); animator.start(); // 动画结束时会回调这个方法 animator.addListener( new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); img.setVisibility(View. INVISIBLE); img2.setVisibility(View. VISIBLE); final ObjectAnimator animator = ObjectAnimator. ofFloat( img2, "rotationY", 270, 360); animator.setDuration( 1500); animator.start(); animator.addListener( new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Intent intent = new Intent(WelcomeActivity. this,LoginActivity. class); startActivity(intent); } }); } }); }}
M层

 
 
package com.bwei.com.lianxi.modul; import com.bwei.com.lianxi.Bean.Bean; import com.bwei.com.lianxi.pretenter.DataPrepter; import com.bwei.com.lianxi.utils.OkhtttpUtils; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; /** * Created by 李浩钰 on 2018/4/4. */ public class MyDataModul implements DataModul { @Override public void getData(String url, final DataPrepter prepter) { OkhtttpUtils. doGet(url, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); Gson gson = new Gson(); Bean bean = gson.fromJson(json, Bean. class); List<Bean.NewslistBean> list = bean.getNewslist(); // 回调给 P prepter.sueccess(list); } }); }}
p层
package com.bwei.com.lianxi.pretenter;

import com.bwei.com.lianxi.Bean.Bean;
import com.bwei.com.lianxi.modul.MyDataModul;
import com.bwei.com.lianxi.view.DataView;

import java.util.List;

/**
 * Created by 李浩钰 on 2018/4/4.
 */

public class MyDataPrepter implements DataPrepter {

    DataView dataView;
    private final MyDataModul myDataModul;

    public MyDataPrepter(DataView dataView){
        this.dataView = dataView;

        myDataModul = new MyDataModul();
    }
    @Override
    public void sueccess(List<Bean.NewslistBean> list) {
            dataView.toBackHome(list);
    }

    @Override
    public void error() {

    }

    public void getDatas(String DataUrl){
        myDataModul.getData(DataUrl,this);

    }
}
manavtivity

package com.bwei.com.lianxi.view;

import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.bwei.com.lianxi.Adapter.MyAdapter;
import com.bwei.com.lianxi.Bean.Bean;
import com.bwei.com.lianxi.R;
import com.bwei.com.lianxi.pretenter.MyDataPrepter;

import java.util.List;

public class MainActivity extends AppCompatActivity implements DataView{

    private RecyclerView recyclerView;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            list = (List<Bean.NewslistBean>) msg.obj;

            adapter = new MyAdapter(MainActivity.this, list);
            recyclerView.setAdapter(adapter);
            adapter.setOnclick(new MyAdapter.OnclickLisenner() {
                @Override
                public void onItemClick(int position) {
                    Intent intent = new Intent(MainActivity.this,XiangqingActivity.class);

                    //传对应的url
                    intent.putExtra("url",list.get(position).getUrl());

                    //走这个

                    startActivity(intent);

                    finish();
                }
            });
        }
    };
    private MyAdapter adapter;
    private List<Bean.NewslistBean> list;

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

        recyclerView = findViewById(R.id.recycle);

        String dataUrl = "http://api.tianapi.com/startup/?key=71e58b5b2f930eaf1f937407acde08fe&num=10";

        MyDataPrepter myDataPrepter = new MyDataPrepter(this);
        myDataPrepter.getDatas(dataUrl);

        recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));



    }


    @Override
    public void toBackHome(List<Bean.NewslistBean> list) {
        Message msg = new Message();
        msg.obj = list;
        handler.sendMessage(msg);
    }
}
登录页面


package com.bwei.com.lianxi.view;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bwei.com.lianxi.R;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;

import java.util.Map;

public class LoginActivity extends AppCompatActivity {

    private ImageView img;
    private TextView tv;
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        img = findViewById(R.id.img_login);
        tv = findViewById(R.id.tv_login);
        btn = findViewById(R.id.btn_login);

        img.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View view) {
                //做登录的操作
//                Intent intent = new Intent(LoginActivity.this,MainActivity.class);
//
//                startActivity(intent);

                UMAuthListener authListener = new UMAuthListener() {
                    /**
                     * @desc 授权开始的回调
                     * @param platform 平台名称
                     */
                    @Override
                    public void onStart(SHARE_MEDIA platform) {

                    }

                    /**
                     * @desc 授权成功的回调
                     * @param platform 平台名称
                     * @param action 行为序号,开发者用不上
                     * @param data 用户资料返回
                     */
                    @Override
                    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

                        Toast.makeText(LoginActivity.this, "成功了", Toast.LENGTH_LONG).show();
                        Log.e("eeeee", String.valueOf(data));

                        tv.setText(data.toString());

                    }

                    /**
                     * @desc 授权失败的回调
                     * @param platform 平台名称
                     * @param action 行为序号,开发者用不上
                     * @param t 错误原因
                     */
                    @Override
                    public void onError(SHARE_MEDIA platform, int action, Throwable t) {

                        Toast.makeText(LoginActivity.this, "失败:" + t.getMessage(),                                     Toast.LENGTH_LONG).show();
                    }

                    /**
                     * @desc 授权取消的回调
                     * @param platform 平台名称
                     * @param action 行为序号,开发者用不上
                     */
                    @Override
                    public void onCancel(SHARE_MEDIA platform, int action) {
                        Toast.makeText(LoginActivity.this, "取消了", Toast.LENGTH_LONG).show();
                    }
                };



                UMShareAPI mShareAPI = UMShareAPI.get(LoginActivity.this);
                mShareAPI.getPlatformInfo(LoginActivity.this, SHARE_MEDIA.QQ, authListener);

            }
        });

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(LoginActivity.this,MainActivity.class);

                 startActivity(intent);
            }
        });

    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }
}
详情页面

package com.bwei.com.lianxi.view;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;

import com.bwei.com.lianxi.R;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb;

public class XiangqingActivity extends AppCompatActivity {

    private Button fenxiang;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xiangqing);

        Intent intent = getIntent();
        final String url = intent.getStringExtra("url");
        fenxiang = findViewById(R.id.fenxiang);
        WebView wb = findViewById(R.id.web);
        wb.getSettings().setJavaScriptEnabled(true);
        wb.loadUrl(url);

        //设置自己的浏览器
        wb.setWebViewClient(new WebViewClient() {
            //覆盖shouldOverrideUrlLoading 方法
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        fenxiang.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                UMWeb umWeb = new UMWeb(url);
                UMImage umImage = new UMImage(XiangqingActivity.this,R.drawable.ic_launcher_background);
                umWeb.setTitle("我是分享的页面");//标题
                umWeb.setDescription("my description");//描述
                new ShareAction(XiangqingActivity.this)
                        .withMedia(umWeb)
                        .setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
                        .setCallback(shareListener).open();
            }
        });


    }

    private UMShareListener shareListener = new UMShareListener() {
        /**
         * @descrption 分享开始的回调
         * @param platform 平台类型
         */
        @Override
        public void onStart(SHARE_MEDIA platform) {

        }

        /**
         * @descrption 分享成功的回调
         * @param platform 平台类型
         */
        @Override
        public void onResult(SHARE_MEDIA platform) {
            Toast.makeText(XiangqingActivity.this,"成功了",Toast.LENGTH_LONG).show();
        }

        /**
         * @descrption 分享失败的回调
         * @param platform 平台类型
         * @param t 错误原因
         */
        @Override
        public void onError(SHARE_MEDIA platform, Throwable t) {
            Toast.makeText(XiangqingActivity.this,"失                                            败"+t.getMessage(),Toast.LENGTH_LONG).show();
        }

        /**
         * @descrption 分享取消的回调
         * @param platform 平台类型
         */
        @Override
        public void onCancel(SHARE_MEDIA platform) {
            Toast.makeText(XiangqingActivity.this,"取消                                          了",Toast.LENGTH_LONG).show();

        }
    };
}
适配器


package com.bwei.com.lianxi.Adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.bwei.com.lianxi.Bean.Bean;
import com.bwei.com.lianxi.R;
import com.bwei.com.lianxi.view.MainActivity;

import java.util.List;

/**
 * Created by 李浩钰 on 2018/4/6.
 */

public class MyAdapter extends RecyclerView.Adapter {
    Context context;
    List<Bean.NewslistBean> list;
    OnclickLisenner onclickLisenner;

    public MyAdapter(Context context, List<Bean.NewslistBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.layout_item, null);
        ViewHolder viewHolder = new ViewHolder(view);

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        final ViewHolder viewHolder = (ViewHolder) holder;
        viewHolder.tv.setText(list.get(position).getTitle());

        String picUrl = list.get(position).getPicUrl();
        Glide.with(context).load(picUrl).into(((ViewHolder) holder).img);

        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int layoutPosition = viewHolder.getLayoutPosition();
                onclickLisenner.onItemClick(layoutPosition);
            }
        });
    }





    @Override
    public int getItemCount() {
        return list.size();
    }

    public void setOnclick(OnclickLisenner onclickLisenner) {
        this.onclickLisenner = onclickLisenner;
    }

    class ViewHolder extends RecyclerView.ViewHolder{

        private final ImageView img;
        private  final TextView tv;

        public ViewHolder(View itemView) {
            super(itemView);

            img = itemView.findViewById(R.id.img_item);
            tv = itemView.findViewById(R.id.tv_item);
        }
    }

    public interface OnclickLisenner{
        void onItemClick(int position);
    }
}
配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bwei.com.lianxi">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:name=".application.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=".view.WelcomeActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".view.MainActivity" />
        <activity android:name=".view.LoginActivity" />
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="tencent100424468" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <activity
            android:name="com.umeng.socialize.editorpage.ShareActivity"
            android:excludeFromRecents="true"
            android:theme="@android:style/Theme.NoTitleBar" />
        <activity
            android:name=".view.XiangqingActivity"
            android:label="@string/title_activity_xiangqing"
            android:theme="@style/AppTheme.NoActionBar"></activity>
    </application>

</manifest>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值