直接貼代碼 和效果:
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, GalleryActivity!</string> <string name="app_name">GalleryActivity</string> <string name="about">關於</string> <string name="close">關閉</string> <string name="ok">確定</string> </resources>
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Gallery android:id="@+id/myGallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom" android:spacing="1dip"></Gallery> </LinearLayout>
GalleryActivity.java
package com.itxinke.www; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.app.AlertDialog; public class GalleryActivity extends Activity { /** Called when the activity is first created. */ private Gallery myGallery; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myGallery = (Gallery)findViewById(R.id.myGallery); myGallery.setAdapter(new ImageAdapter(this)); } public class ImageAdapter extends BaseAdapter { private Context myContext; private int[]myImageIds = { android.R.drawable.btn_minus, android.R.drawable.btn_radio, android.R.drawable.ic_dialog_dialer, android.R.drawable.ic_dialog_email }; public ImageAdapter(Context context) { this.myContext = context; } @Override public int getCount() { // TODO Auto-generated method stub return this.myImageIds.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ImageView i = new ImageView(this.myContext); i.setImageResource(this.myImageIds[position]); i.setScaleType(ScaleType.FIT_XY); i.setLayoutParams(new Gallery.LayoutParams(100, 100)); return i; } public float getScale(boolean focused,int offset) { return Math.max(0, 1.0f/(float)Math.pow(2, Math.abs(offset))); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.add(0,0,0,R.string.about); menu.add(0,1,1,R.string.close); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()) { case 0: openOptionDialog(); break; case 1: finish(); } return super.onOptionsItemSelected(item); } public void openOptionDialog() { new AlertDialog.Builder(this).setTitle(R.string.app_name). setMessage(R.string.about).setPositiveButton(R.string.ok,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }).show(); } }
在現代移動和Web開發中,處理圖像下載是一項常見任務。Kotlin作爲一種現代的、表達能力強的編程語言,因其簡潔性和對Android開發的支持而廣受歡迎。Fuel庫是一個輕量級的、易於使用的Kotlin HTTP客
引言 在Android開發中,debug包和release包的行爲差異可能導致release包在運行時出現問題,而這些問題在debug包中不會出現。 本文主要介紹debug包和release包的差異,導致此問題出現的可能原因及解決辦法
文件位置:./gradle/init.gradle def repoConfig = { all { ArtifactRepository repo -> if (repo instanceof MavenArtif
方案概述 在汽車發展和用戶需求的推動下,汽車鑰匙開始從傳統的機械鑰匙向數字化、智能化方向發展。目前常見的數字鑰匙集成了藍牙、NFC、UWB等技術實現了移動設備與車端的通信,可以幫助用戶便捷的實現車輛功能控制。隨着數字鑰匙的廣泛
前言 在無線網絡技術不斷髮展的今天,Wi-Fi已經成爲了我們日常生活中不可或缺的一部分。無論是家庭娛樂、辦公還是在線遊戲,Wi-Fi都在提供着便捷的互聯網接入服務。然而,在安卓8.1後,爲了進一步延長安卓設備的待機時間。原生安卓(AO
DevExpress .NET MAUI UI組件庫提供了用於Android和iOS移動開發的高性能UI組件,該庫包括數據網格、圖表、日程、數據編輯器、CollectionView和選項卡組件。 獲取DevExpress .NET MAUI
作者:vivo 互聯網大前端團隊 - Ma Lian 本文主要描述了FileProvider,startAnyWhere實現,Parcel不對稱漏洞以及這三者結合產生的漏洞利用實戰,另外闡述了漏洞利用的影響和修復預防措施,這個漏洞波及了
Taro 團隊再再再招人啦!我們正在尋找多位有經驗的「前端開發工程師」加入我們的團隊。如果您具備以下技能和經驗,我們期待您的加入: 工作職責 參與 Taro 框架開發,同時在跨端和全棧等技術方向攻克難題; 參與跨團隊合作,完成整體項目規
BusyBox是一個遵循GPL協議、以自由軟件形式發行的應用程序。 Busybox在單一的可執行文件中提供了精簡的Unix工具集,可運行於多款POSIX環境的操作系統,例如Linux(包括Android)、Hurd、FreeBSD等等。 由
爲你的應用程序增加AppIntent能力 引言 AppIntent是iOS16+之後引入的框架,在iOS17+後,對AppIntent的功能又進行了進一步的增強。其提供了接口可以讓我們將應用程序的某部分特定功能抽離出來,提供給Siri和Sh
背景 今天在使用redis做分佈式緩存提供自增id的時候,發現了�� t Goods_key_37的亂碼問題;因爲存的是Long,然後我就自定義了一個RedisTemplate<string,long>的實例來使用 解決過程 1.剛開始說
本文分享自華爲雲社區《10分鐘搞懂各種內存溢出案例!!(含完整源碼,建議收藏)》,作者:冰 河。 作爲程序員,多多少少都會遇到一些內存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑。今天,我
Ai technology 前言 AppBuilder上線了低代碼製作組件功能,可以通過工作流的方式構建自定義組件,完成簡單Agent無法完成的複雜功能,使得生成的文本更加定製化,
最近在刷一些問題的時候看到有下面一個問題 上面問的是當輸入的字符串爲什麼的時候返回 True 總結 在做題目的時候,第一次還做錯了。 這是因爲解答這個題目的時間只有 3 分鐘,沒有自己看題目 後來拿着程序跑了下。 p
在windows環境,springboot 處理提交的json數據報錯“com.fasterxml.jackson.databind.JsonMappingException: Invalid UTF-8 start byte 0xb1”。