一款通用的歡迎頁,可以有多張圖片
自定義歡迎頁張數,帶應到點。多的不說了,直接上程式碼。
效果大家可以自己試一下,
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年如橫空出世一般火爆了整個短視訊行業,抖音在網際網路“新人類”群體中更是無人不知無人不曉。越來越多的人開始沉迷抖音無法自拔,“抖友出征,寸草不生”、“天王蓋地虎,小雞燉蘑菇”等之前內涵段友間的網