日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微博尾巴不加android,! android应用——装逼神器《微博尾》

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微博尾巴不加android,! android应用——装逼神器《微博尾》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(本文android新手所做,有疑問或建議請回復~直接回帖或聯系新浪微博@請叫我小純酷)

學習android也快一個月了,本身有java基礎,學起來也比較容易。第一個應用《微博尾》因此誕生了~(作為第一個作品對于本人來說還是比較滿意的)

說難不難,簡單也不簡單(對于新手來說會遇到一些問題的),思路一有了,就開始做了(興趣所在),做的過程中也遇到很多問題。也慢慢積累了經驗。

首先,想法很重要,沒有想法都不知從何做起,微博尾這個的想法是從網上瀏覽無意間看到的,通過修改微博尾,來顯示發微博時“來自 xxx手機”的標志,便覺得好玩[土(zhuang)豪(bi)必備],于是開始著手做~~~

好了,開始了~~~

1、收集微博尾資源,在網上找了很多微博尾的app_src,收集了很多之后就開始了。

2、搭建環境,由于現在的手機android版本都基本4.xx了,故而選擇目標版本4.2.2,最小支持版本3.2。

3、開始設計界面布局以及樣式等等。

先上張首頁圖效果如下:

這里,首頁布局采用了GridView布局方式,每個Item里面均有一個TextView,每個TextView綁定了一個圖片以及文字,專門用于顯示手機類型的(大類型,可點擊進入小尾巴分類),點擊之后顯示如下:

這里采用了ListView布局,表面看只有一個TextView,里面其實還隱藏了另一個TextView,用于存放對應的app_src,當點擊ListView的某個item時,對應的app_src將被添加到對應要發布微博的URL中,之后點擊下面的“微博,走你“按鈕,即可到新浪微博發微博,所發的微博也即能顯示你所點擊的尾巴類型如” 來自 iPhone5s “等~~

總體流程就是這樣子。

看起來實現好像沒什么難度,其實中間也遇到一些問題,這里稍微講解一下:

1、首先對于新手來說,很多東西學了不一定能全記住,要養成好的習慣,比如,新建一個Activity就要想到在清單文件AndroidManifest.xml中添加對應的Activity申明。而這個應用需要用到網絡,也就得添加相應的網絡permission了。

2、上面Gridview對應的每一個item點擊進去后顯示的ListView,當然不是一個個的Activity了,不然很浪費資源的,可以采用Fragment碎片,靈活又方便。當然,采用了Fragment又會遇到一些問題了。

比如,返回事件,當從主頁MainActivity(GridView用一個Fragment包裝)跳到ListView(一個Fragment),此時還是MainActivity,只不過換了個Fragment而已,所以不處理一下返回事件的話,一點返回將退出程序了。如何解決呢?

看下面代碼

Fragment?selectPhoneFragment?=?new?SelectPhoneFragment();

FragmentTransaction?transaction?=?getFragmentManager().beginTransaction();

Bundle?bundle?=?new?Bundle();

bundle.putString("phoneName",?PHONE_NAME[position]);

selectPhoneFragment.setArguments(bundle);

transaction.replace(R.id.main_fragment,selectPhoneFragment);

transaction.addToBackStack(null);

transaction.commitAllowingStateLoss();

transaction.addToBackStack(null);這句是關鍵,將當前的Activity添加到棧中,返回時即可顯示剛剛那個Activity。

3、17個手機產商,我直接就存放在String數組中了,以及對應的圖片drawable ID,后續可使用面向對象的方式存放。但是,70多個微博尾,如何存放呢?剛開始想了存放在Sqlite數據庫中,后來想想還是不習慣使用Sqlite,于是,就采用了properties工具類來存儲了。工具代碼如下:

package?com.xiaoku.weibowei.util;

import?java.io.IOException;

import?java.io.InputStream;

import?java.util.Properties;

/**

*?讀取property文件

*/

@SuppressWarnings("serial")

public?class?FileUtil?implements?java.io.Serializable{

private?Properties?prop?;

private?InputStream?is?;

public?FileUtil(String?filename)

{

prop?=?new?Properties()?;

is?=?getClass().getResourceAsStream("/assets/"+filename);

try?{

prop.load(is);

if(is!=null)

is.close();

}?catch?(IOException?e)?{

System.out.print(e.getMessage())?;

e.printStackTrace();

}

}

//取得屬性

public?String?getProperties(String?PropertyName)

{

return?prop.getProperty(PropertyName);

}

}

從上面的代碼可以看到,我存放的property文件是放在assets目錄下的。

于是,我就可以在property文件中存放對應的手機以及對應微博尾鍵值對了。鍵為手機商,值為多個尾巴組合起來。如:華為=榮耀6的尾巴#榮耀6&榮耀3C的尾巴#榮耀3C

取出來之后在按照&劃分,之后再按照#劃分,便可取到對應尾巴的app_src了。

4、剛剛前面說過的fragment還有一個問題,就是橫豎屏的時候會出錯,比如MainActivity(里面的一個fragment手機產商,記為MainFragment),點擊某個手機產商,調到另一個fragment,此時還在MainActivity,如果切換橫豎屏的話,就會出現跳回MainFragment界面。原因是橫豎屏切換的話默認會導致Activity從新調用onCreate方法一次,也就是會顯示了MainFragment手機產商界面。可在清單文件配置如下:

然后在MainActivity中重寫一下onConfigurationChanged方法(這里我就沒處理了):

//橫豎屏切換

@Override

public?void?onConfigurationChanged(Configuration?newConfig)?{

/*if(newConfig.orientation?==?Configuration.ORIENTATION_LANDSCAPE){

Toast.makeText(getApplicationContext(),?"橫屏",?Toast.LENGTH_LONG).show();

}else{

Toast.makeText(getApplicationContext(),?"豎屏",?Toast.LENGTH_LONG).show();

}*/

super.onConfigurationChanged(newConfig);

}

5、關于2次返回按鈕退出時顯示吐絲”再按一次退出程序“的做法,其實也很簡單,只需在MainActivity中重寫一下onKeyDown,里面做一下判斷

//2次返回退出應用

@Override

public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{

if?(keyCode?==?KeyEvent.KEYCODE_BACK)?{

if?(this.getFragmentManager().getBackStackEntryCount()?==?0)?{//最后一個fragment即主頁~

if?((System.currentTimeMillis()?-?mExitTime)?>?2000)?{

Toast.makeText(this,?"再按一次退出程序",?Toast.LENGTH_SHORT).show();

mExitTime?=?System.currentTimeMillis();

}else?{

finish();

}

return?true;

}

}

return?super.onKeyDown(keyCode,?event);

}

這里的【?if?(this.getFragmentManager().getBackStackEntryCount()?==?0)?{//最后一個fragment即主頁~?】???也比較關鍵,因為使用了fragment,不然在ListViewFragment(也就是選擇具體某個手機型號的界面)里面點擊返回也會執行這一個,不做這段處理的話,也會顯示”再按一次退出程序“。

6、關于菜單按鈕(右上角三個點),可能是由于版本問題,有些地方顯示不了,可在MainActivity中的onCreate方法做以下處理:

//顯示三個點菜單

try?{

ViewConfiguration?config?=?ViewConfiguration.get(this);

Field?menuKeyField?=?ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");

if(menuKeyField?!=?null)?{

menuKeyField.setAccessible(true);

menuKeyField.setBoolean(config,?false);

}

}?catch?(Exception?e)?{

e.printStackTrace();

}

在菜單”關于“按鈕顯示對應的頁面中,顯示作者信息等等那一個頁面,橫豎屏切換遇到了下面的字看不到了,原因就是沒有設置滾動條,可在對應的Layout中添加ScrollView包裹你要滾動的視圖。

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:scrollbars="vertical">

包裹要滾動的視圖

在菜單”圖解“按鈕中,其實也就是初始安裝顯示的引導頁面,使用的是ViewFilpper, 可參考http://blog.csdn.net/love_5209/article/details/38516233

里面又涉及到橫豎屏切換問題,一橫屏,顯示的圖片不是很好看,故而應該設置只允許豎屏顯示,可在清單文件配置對應的Activity:

參數還有其他,大家可以研究研究~

7、點擊”微博,走你“按鈕之后,跳到另一個Activity,這里采用了WebView來訪問傳過來的URL值,默認不做處理的話,訪問后會出現可以訪問新浪微博,但是點擊不了里面的按鈕之類的,返回也沒有直接在瀏覽器返回(不管你點了多少個頁面,一點返回直接跳回ListViewFragment頁面),故需要做一下處理如下:

@SuppressLint({?"SetJavaScriptEnabled",?"SdCardPath"?})

@Override

public?void?onViewCreated(View?view,?Bundle?savedInstanceState)?{

super.onViewCreated(view,?savedInstanceState);

String?url?=?(String)?getArguments().get("url");//接收傳過來的URL

webView?=?(WebView)?getActivity().findViewById(R.id.webview);

//點擊后退按鈕,讓WebView后退一頁(也可以覆寫Activity的onKeyDown方法)

webView.setOnKeyListener(new?View.OnKeyListener()?{

@Override

public?boolean?onKey(View?v,?int?keyCode,?KeyEvent?event)?{

if?(event.getAction()?==?KeyEvent.ACTION_DOWN)?{

if?(keyCode?==?KeyEvent.KEYCODE_BACK?&&?webView.canGoBack())?{

webView.goBack();???//后退

//webview.goForward();//前進

return?true;????//已處理

}

}

return?false;

}

});

//設置瀏覽器可用

WebSettings?s?=?webView.getSettings();

s.setBuiltInZoomControls(true);

s.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);

s.setUseWideViewPort(true);

s.setLoadWithOverviewMode(true);

s.setSavePassword(true);

s.setSaveFormData(true);

s.setJavaScriptEnabled(true);

//?enable?navigator.geolocation

s.setGeolocationEnabled(true);

s.setGeolocationDatabasePath("/data/data/com.xiaoku.weibowei/databases/");

//?enable?Web?Storage:?localStorage,?sessionStorage

s.setDomStorageEnabled(true);

webView.requestFocus();

webView.setScrollBarStyle(0);

webView.setWebViewClient(new?WebViewClient(){

@Override

public?boolean?shouldOverrideUrlLoading(WebView?view,

String?url)?{

view.loadUrl(url);

return?true;

}

});//自定義瀏覽器

webView.loadUrl(url);

Toast.makeText(getActivity(),?"加載網頁,請稍等...",?Toast.LENGTH_LONG).show();

}

除了以上這些,其實還有其他的一些功能,比如進入ListViewFragment,listView滑動的效果;軟件初始顯示圖解,之后點擊直接進入主頁;嵌入插屏廣告;分享功能等等。

對于源碼目前暫不提供,有問題可回帖交流!

微博尾2.0版本已完工,9月份初上線。(版本預告:尾巴達90多種,添加個性尾巴,分享功能提供下載地址)

感謝您的閱讀~!

總結

以上是生活随笔為你收集整理的微博尾巴不加android,! android应用——装逼神器《微博尾》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。