1. 程式人生 > >一款通用的歡迎頁,可以有多張圖片

一款通用的歡迎頁,可以有多張圖片

自定義歡迎頁張數,帶應到點。多的不說了,直接上程式碼。

效果大家可以自己試一下,


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

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

/**
 * @專案名稱:	Make_wish
 * @類名稱: 	Welcome_Activity.java
 * @建立人:	Mr.ladeng (
[email protected]
) * @建立時間: 2015-5-11下午8:09:42 * @修改備註: * @version 1.0 * @類描述:引導歡迎頁面,首次安裝會進入這個介面 */ public class Welcome_Activity extends BaseActivity { private TextView wel_jump; private ImageView tv; private ViewPager vp;// 頁卡內容 private List<ImageView> datas; // Tab頁面列表 private LinearLayout ll_points; //ArrayList<ImagePage> imageP ; private static final String SHAREDPREFERENCES_NAME = "first_pref"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PushAgent.getInstance(this).onAppStart(); // 設定全屏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 無title getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); // 全屏 setContentView(R.layout.welcome_activity); (new GetWelcomeImg()).execute(); //Bundle bundle=getIntent().getExtras(); //imageP =bundle.getParcelableArrayList("img"); // 初始化 initView(); } private void initView() { wel_jump = (TextView) findViewById(R.id.wel_jump); tv = (ImageView) findViewById(R.id.wel_tv); vp = (ViewPager) findViewById(R.id.vp); ll_points = (LinearLayout) findViewById(R.id.ll_points); initDatas(imageP); vp.setOffscreenPageLimit(3); vp.setAdapter(new MyPagerAdapter()); setListener(); } /** 未選中 */ private int prePosition = 0; @SuppressWarnings("deprecation") private void setListener() { /** 設定小圓點**/ vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { ll_points.getChildAt(position).setBackgroundResource(R.drawable.wel_dot_enable);//選中背景色 ll_points.getChildAt(prePosition).setBackgroundResource(R.drawable.wel_normal);//未選中背景色 /** 選中 */ prePosition = position; /** * 設定tv可見 當position為第4個圖片的時候啟用下面的方法 其他時候都是不可見的 * 下面一個動畫 ,在最後一個頁面的時候可以通過動畫跳轉到主介面 */ if (position == datas.size() - 1) { wel_jump.setVisibility(View.VISIBLE);//跳過 }else { wel_jump.setVisibility(View.GONE);//跳過 } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); /** * 設定點選跳轉 */ wel_jump.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { setGuided(); openActivity(LoginActivity.class); finish(); } }); tv.setOnClickListener(new OnClickListener() { @Override // 點選方法 public void onClick(View v) { setGuided(); openActivity(LoginActivity.class); finish(); } }); } /** * * method desc:設定已經引導過了,下次啟動不用再次引導 */ private void setGuided(){ SharedPreferences preferences = getSharedPreferences( SHAREDPREFERENCES_NAME, MODE_PRIVATE); Editor editor = preferences.edit(); // 存入資料 editor.putBoolean("isFirstIn", false); // 提交修改 editor.commit(); } // 將圖片新增到介面上 private void initDatas(ArrayList<ImagePage> imageP) { datas = new ArrayList<ImageView>(); for (int i = 0; i < imageP.size() ; i++) { SimpleDraweeView iv = new SimpleDraweeView(Welcome_Activity.this); FrescoUtils.loadImageStart( iv , imageP.get(i).imgs); datas.add(iv); int px2dp = ScreenUtils.px2dp(getApplicationContext(), 30); int screenWidth = ScreenUtils.getScreenWidth(getApplicationContext()); if (screenWidth>=1080) { px2dp = 30 ; } View view = new View(this); // 為這個view設定背景 未選中狀態背景色 view.setBackgroundResource(R.drawable.wel_normal); // 定義佈局引數,並給view設定引數(寬,高) LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(px2dp , px2dp); params.leftMargin = px2dp ; view.setLayoutParams(params); // 將定義好的view加入到線性佈局中 ll_points.addView(view); } ll_points.getChildAt(0).setBackgroundResource(R.drawable.wel_dot_enable);//選中狀態背景色 } private class MyPagerAdapter extends PagerAdapter { // viewPager的頁數 @Override public int getCount() { return datas.size(); } @Override public boolean isViewFromObject(View view, Object obj) { return view == obj; } // 初始化條目 @Override public Object instantiateItem(ViewGroup container, int position) { // 必須要加入到ViewGroup中 container.addView(datas.get(position)); return datas.get(position); } // 從ViewPager中移除 @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(datas.get(position)); } } /********* 歡迎頁 start******** */ class GetWelcomeImg extends AsyncTask<Void, Integer, Integer> { private String flag; ArrayList<ImagePage> imageP ; GetWelcomeImg() { imageP = new ArrayList<ImagePage> (); } @Override protected void onPreExecute() { } @Override protected Integer doInBackground(Void... params) { JSONObject jsonObject = JsonUtils.ReadHttpGet(Constant.WelcomeImg); Integer result = 0; if (null != jsonObject) { try { flag = jsonObject.getString("flag").toString().trim(); if (flag.equals("1")) { JSONArray jsonArray = new JSONArray(jsonObject.getString("data")); ImagePage imagePage ; for (int i = 0; i < jsonArray.length(); i++) { imagePage = new ImagePage(); JSONObject temp = (JSONObject) jsonArray.get(i); imagePage.imgs = temp.getString("pic"); imageP.add(imagePage); } result = 1; }else { result = 0; } } catch (JSONException e) { e.printStackTrace(); result = 0; } } return result; } @Override protected void onPostExecute(Integer result) { // over do somethhing if (1 == result) { initDatas(imageP); vp.setOffscreenPageLimit(3); vp.setAdapter(new MyPagerAdapter()); setListener(); }else { openActivity(LoginActivity.class); finish(); } super.onPostExecute(result); } @Override protected void onProgressUpdate(Integer... values) { } } class ImagePage { public String imgs ; } /** 非同步任務 end ******** */ /****************** 歡迎頁##### *********************/ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return true; } return super.onKeyDown(keyCode, event); } }

佈局程式碼

<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"
    tools:context=".Welcome_Activity" >

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- alpha  是透明度(範圍0-1),,visibility設定是否可見(gone為不可見,visible可見) -->

    <LinearLayout
        android:id="@+id/ll_points"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/vp"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:gravity="center"
        android:orientation="horizontal" />
    
    <ImageView
        android:id="@+id/wel_tv"
        android:layout_width="100dp"
        android:layout_height="20dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="15dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/jumpto"
        android:gravity="center"
        android:visibility="visible" />

    <TextView
        android:id="@+id/wel_jump"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/ll_points"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="21dp"
        android:background="@drawable/jump_tv"
        android:gravity="center"
        android:padding="10dp"
        android:textColor="@color/white"
        android:text="立即體驗"
        android:visibility="gone" />

</RelativeLayout>


需要圖片資源

相關推薦

通用歡迎可以圖片

自定義歡迎頁張數,帶應到點。多的不說了,直接上程式碼。 效果大家可以自己試一下, import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.jso

js通過添加隨機數的方法解決圖片加載時由於緩存導致圖片無法正確顯示的問題

原因 顯示 rand class var rip 圖片加載 提交數據 cti 問題出現描述:當對列表中某個圖片進行重新編輯時,提交後會發現圖片列表仍會出現修改之前的圖片,新圖片並未覆蓋。 問題出現原因:緩存問題。 解決辦法:通過js方法,在每張圖片路勁後面添加一個隨機數,這

左右按鈕切換圖片

html: <div id="content"> <a href="javascript:;" id="prev"><</a> <

點選圖片顯示大圖(圖片可以左右滑動)

需求:專案中用到了就是在列表展示的時候會出現圖片,點選圖片展示大圖。思路:用dialog來實現。因為這裡在列表裡會用到,點選進入動態詳情也會用到,所以直接寫進工具類。上程式碼:            全屏顯示在於引數後面的style.上程式碼——            這裡因

Json序列化關系時出現的問題

oca lan util 一對一 屬性。 sans 雙向 rate stat /** * 這是一張 單表中的雙向一對多,多對一 關系。自己跟自己一對多多對一 */ @Entity @Table(name="tb_test") public class

Json序列化關係時出現的問題

/** * 這是一張 單表中的雙向一對多,多對一 關係。自己跟自己一對多多對一 */ @Entity @Table(name="tb_test") public class CreditsEventBean implements Serializable{ private s

組集合中獲取次取集合中的每段數據中的最大值重組成一個新的集合。

clas pub 處理 oat private color andro sublist roi 一個項目中偶遇的簡單算法,個人覺得還不錯,雖不常用,也記錄在此吧。 1 package huolongluo.qihuo.util; 2 3 import androi

在GET方式下個參數時的處理

body getname ron 自動 arr tro rest 封裝 from 在一個查詢接口中,需要的參數比較多,如果還是使用GET方式進行請求的話,那麽,Controller 中的方法的參數列表將會非常多,如: public List<String> g

【html+css3】在jpg圖片顯示透明的png圖片

*** 放置 技術分享 一個 col 標簽 ech 透明 image 1、需求:在一個div布局裏面放置整張jpg圖片,然後在jpg圖片上顯示三張水平展示的透明png圖片,且png外層用a標簽包含菜單 2、效果圖: 3、上圖,底層使用藍色jpg圖片,【首頁】、【購物車】、【

開發即時通訊App從這幾步開始

聯系 多功能 數據監控 live 裁剪 ren vertica super 聯系人 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文由騰訊雲視頻發表於雲+社區專欄 關註公眾號“騰訊雲視頻”,一鍵獲取 技術幹貨 | 優惠活動 | 視頻方案 “晚上去哪吃

hql的通用檢視原生程式碼

BaseDAO package com.zking.eight.util; import java.util.Collection; import java.util.List; import java.util.Map; import org.hibernate

深度學習opencv讀取圖片顯示圖片顯示

import numpy as np import cv2 def cv_norm_proc(img): # cv_norm_proc函式將圖片歸一化 [-1,1] img_rgb = (img / 255. - 0.5) * 2 return img_rgb def cv_in

種技術叫人工智慧種崛起叫人工智慧Ready?

人工智慧的優勢與潛能 西班牙皇家埃爾卡諾研究所網站發表的文章《人工智慧與權力》指出,人工智慧的最大優勢在於它能夠解決人類能力有限的複雜問題。面對真真假假的海量資料,人類已沒有能力用這些資料確定關係、模式,或者進行推論和預測,因為這些都需要擁有強大的計算能力。 德國《國際政治》雙月刊發表的文章

優秀的oa辦公哪些主要功能?

oa辦公能夠解決企業日常管理規範化、增加企業的可控性、提高企業運轉的效率等,範圍涉及日常行政管理、各種事項的審批、辦公資源的管理、多人多部門的協同辦公、以及各種資訊的溝通與傳遞。可以說,oa辦公如今是企業提高整體運轉能力不可缺少的軟體工具。 oa辦公功能模組主要由以下幾部分構成: 1、個人辦公功能模組

推薦看片神器安卓版的很給力的!

這年頭,哪個不看片? 不論是否有男/女朋友,相信你都會有心癢難耐的時候,這個時候很多人選擇看片來渡過! 大多數人手中可能儲存了十來個App,或是明顯的,或是不明顯的。有些是收費型的,充值了會員才能繼續觀看,十多個App可以輪著來看。有些是免費的,但是國內免費的情況大多數是

組input檔案每組 multiple選擇圖片上傳可增刪其中任意圖片

input 、multiple選擇多張圖片時,需要刪除其中的一張圖片怎麼做,大家都知道 input 中的檔案是不能刪除和更改的,只能清空,這裡我的做法是 定義一個物件儲存器把需要的檔案存在儲存器中 formData,後臺不從Input中讀取,從物件儲存器中獲取檔案,一組圖片使

Vue任務列表中個可選項直接單擊進行修改——0920

任務列表中,有多個可選項,直接單擊進行修改。功能實現。 <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml"> <head>

[原創]小巧、靈活的Java執行緒爬蟲框架(AiPa)

1.作品簡介 AiPa 是一款小巧,靈活,擴充套件性高的多執行緒爬蟲框架。 AiPa 依賴當下最簡單的HTML解析器Jsoup。 AiPa 只需要使用者提供網址集合,即可在多執行緒下自動爬取,並對一些異常進行處理。 2.下載安裝 AiPa是一個小巧的、只有390KB的jar包。 下載該Jar包匯入到你的專案中

破解的抓包工具debug proxy教你怎麼修改so

1.這個軟體可以在google play裡搜到,很不錯,用來抓取手機裡app的網路請求,可以模擬弱網路,抓取部分http等,是一個很好用的網路除錯工具。下載地址:https://pan.baidu.com/s/1i5qw6Zb 2.這個apk只有在Google play裡下載安裝才能正常使

模仿抖音原始碼開發短視訊APP到底難不難?

       說起“抖音”這款短視訊APP,相信大家都不會感到陌生。抖音在2017年如橫空出世一般火爆了整個短視訊行業,抖音在網際網路“新人類”群體中更是無人不知無人不曉。越來越多的人開始沉迷抖音無法自拔,“抖友出征,寸草不生”、“天王蓋地虎,小雞燉蘑菇”等之前內涵段友間的網