第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Android:如何制作可點(diǎn)擊的地圖圖像,并使每個(gè)國(guó)家/地區(qū)采取不同的行動(dòng)?

Android:如何制作可點(diǎn)擊的地圖圖像,并使每個(gè)國(guó)家/地區(qū)采取不同的行動(dòng)?

慕慕森 2019-11-13 09:40:23
我需要顯示一張歐洲地圖的漂亮圖像,并且我希望我的應(yīng)用程序在用戶單擊每個(gè)國(guó)家/地區(qū)時(shí)(例如,帶來(lái)不同的活動(dòng))-地圖上的每個(gè)國(guó)家/地區(qū)都需要具有不同的onClickListener(或同等功能)。本質(zhì)上,當(dāng)用戶在這樣的圖像中點(diǎn)擊法國(guó)而不是西班牙時(shí),我需要能夠調(diào)用其他函數(shù):http : //commons.wikimedia.org/wiki/File : Blank_map_of_Europe_cropped.svg我最好如何在Android上進(jìn)行此操作?我有想法,但是可能有一些我忽略的簡(jiǎn)單方法。提前謝謝了!干杯,r3mo
查看完整描述

3 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是我解決類似問(wèn)題的方法。


首先復(fù)制要用作圖像貼圖的圖像,然后為每個(gè)部分上色。不用說(shuō),每個(gè)部分都有不同的顏色:D。然后在布局中創(chuàng)建兩個(gè)ImageView。將第一個(gè)的背景設(shè)置為要顯示的圖像,將第二個(gè)的背景設(shè)置為其中的彩色。


然后將第二個(gè)ImageView的可見性設(shè)置為invisible。如果此時(shí)運(yùn)行該程序,則應(yīng)該看到要顯示的圖像。然后使用OnTouch偵聽器并獲取您觸摸的像素的顏色。顏色將與彩色圖像的顏色相對(duì)應(yīng)。


需要將以下getColour方法傳遞給touch事件的x和y坐標(biāo)。R.id.img2是不可見的圖像。


private int getColour( int x, int y)

{

    ImageView img = (ImageView) findViewById(R.id.img2);

    img.setDrawingCacheEnabled(true); 

    Bitmap hotspots=Bitmap.createBitmap(img.getDrawingCache()); 

    img.setDrawingCacheEnabled(false);

    return hotspots.getPixel(x, y);

}

希望這對(duì)您有所幫助:)。


查看完整回答
反對(duì) 回復(fù) 2019-11-13
?
慕尼黑的夜晚無(wú)繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

我像Scotty所說(shuō)的那樣戴了口罩,但是遇到了更多的問(wèn)題?;旧?,getPixel返回的顏色與遮罩文件中的顏色略有不同。我要做的是在禁用縮放和使用全色選項(xiàng)的情況下將掩碼加載到內(nèi)存中:


BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();

bitmapOptions.inTargetDensity = 1;

bitmapOptions.inDensity = 1;

bitmapOptions.inDither = false;

bitmapOptions.inScaled = false;

bitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;

mask = BitmapFactory.decodeResource(appContext.getResources(), resMask, bitmapOptions);

然后我從縮放后的圖像中查找坐標(biāo),如下所示:


ImageView map = (ImageView) findViewById(R.id.image);

Drawable drawable = map.getDrawable();

Rect imageBounds = drawable.getBounds();

int scaledHeight = imageBounds.height();

int scaledWidth = imageBounds.width();

int scaledImageOffsetX = Math.round(event.getX()) - imageBounds.left;

int scaledImageOffsetY = Math.round(event.getY()) - imageBounds.top;


int origX = (scaledImageOffsetX * mask.getWidth() / scaledWidth);

int origY = (scaledImageOffsetY * mask.getHeight() / scaledHeight);


if(origX < 0) origX = 0;

if(origY < 0) origY = 0;

if(origX > mask.getWidth()) origX = mask.getWidth();

if(origY > mask.getHeight()) origY = mask.getHeight();

然后我應(yīng)用了mask.getPixel(origX,origY)。僅當(dāng)在ImageView中使用android:scaleType =“ fitXY”縮放圖像時(shí),此功能才有效,否則會(huì)關(guān)閉坐標(biāo)。


查看完整回答
反對(duì) 回復(fù) 2019-11-13
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

在區(qū)域上像素顏色的一致性方面仍然存在問(wèn)題。最終對(duì)我有用的是確保我使用帶有索引顏色的PNG圖像作為蒙版。在我的情況下,我使用了經(jīng)過(guò)網(wǎng)絡(luò)優(yōu)化的調(diào)色板(216種顏色),并確保我選擇的所有顏色都是該調(diào)色板中的值。進(jìn)行此更改后,我在整個(gè)區(qū)域中獲得了相同的顏色值。


查看完整回答
反對(duì) 回復(fù) 2019-11-13
  • 3 回答
  • 0 關(guān)注
  • 624 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)