顯示具有 Android 標籤的文章。 顯示所有文章
顯示具有 Android 標籤的文章。 顯示所有文章

2011年5月20日 星期五

[Android] 在Anddroid 中 投放 AdMob 廣告

現在AdMob帳號已經可以跟google帳號綁在一起了,
且也跟AdSense綁在一起,所以廣告投放率也還OK
接下來我會稍微敘述一下新版的AdMob的投放步驟

1.先至 http://zhtw.admob.com 申請一個AdMob 帳號

2.新增一個應用程式


3.我在這裡示範的是Android
4.填寫詳細資料,如下


   
  
例如:market://details?id=
   

(不要真的填阿XD"送不出去的)
5.下載SDK,並前往應用程式

6.做到這步你已經完成基本的設定了:)
接下來你只需要查看一下你的發布商 ID

7.把剛剛下載下來的SDK打開,會看到GoogleAdMobAdsSdk-4.1.0.jar ,把它加入Java Build Path



8.讓我們先來設定AndroidManifest.xml吧
加入以下兩個權限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

並加入這個Activity在裡面

<activity android:name="com.google.ads.AdActivity"
                      android:configChanges="keyboard|keyboardHidden|orientation"/>


有可能像這個樣子

9.創一個attrs.xml 內容如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <declare-styleable name="com.google.ads.AdView">
      <attr name="adSize">
          <enum name="BANNER" value="1"/>
          <enum name="IAB_MRECT" value="2"/>
          <enum name="IAB_BANNER" value="3"/>
          <enum name="IAB_LEADERBOARD" value="4"/>
      </attr>
      <attr name="adUnitId" format="string"/>
  </declare-styleable>
</resources>





10.讓我們來設定Layout吧,依需求把廣告放到需要的位置
<com.google.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="開發商ID"
                         ads:adSize="BANNER"/>

如果你的Android SDK版本比較新,也可以看到他的模擬畫面


11.在程式中讓它可以作用吧,程式碼有可能像這樣
package com.redwan.samples;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.google.ads.AdRequest;
import com.google.ads.AdView;

public class admob extends Activity{
  private AdView adView;

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);       
        setContentView(R.layout.admob);
        TextView tv = (TextView)findViewById(R.id.textView1);
        tv.setText("admob,稍等一下廣告就出來了");
        
        adView = (AdView)findViewById(R.id.adView1);
        AdRequest adRequest = new AdRequest();
        //adRequest.setTesting(true);
        adView.loadAd(adRequest); 
      }
}


12.執行程式,稍等網路跑一下廣告就出來了,你看到的結果可能像這樣


恭喜你 ~ 開始賺錢吧  :D




參考
http://blog.kerul.net/2011/05/installing-google-admob-into-android.html

2011年3月27日 星期日

Android 讀取音樂檔

從 SD卡讀取音樂檔
MediaPlayer mp =MediaPlayer.create(main.this,Uri.parse("/sdcard/XXX.mp3"));

從asset讀取音樂檔

 MediaPlayer  mp = new MediaPlayer();
        try {
        mDescriptor = getAssets().openFd("XXX.mp3");
        mp.setDataSource(mDescriptor.getFileDescriptor(), mDescriptor.getStartOffset(),    mDescriptor.getLength());
        mp.prepare();
        }catch(Exception e){
       
        }

2010年12月30日 星期四

Android 縮小讀圖方法(OutOfMemoryError解法)

在使用bitmap處裡影像轉換時,是不是常常出現
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
的錯誤呢

網路上普遍的說法是bitmap.recycle()
但其實是因為你讀取的原圖大過限制的關係,處裡方法如下


BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;

縮小成1/4,在放進bitmap中

Bitmap myImage = BitmapFactory.decodeByteArray(imageData, 0, imageData.length, options);
Bitmap originalImage = BitmapFactory.decodeResource(getResources(), imageId, options);


希望對你有幫助:D

2010年11月29日 星期一

G1 USB HOST

改造G1使其擁有USB HOST
1. 取得手機root權限
2. 刷rom,取得新版fastboot1.3
(在此,我是使用國外論壇釋出的「CyanodenMod-6.0.0-DS」,Ver:2.2,build number:FRF91)
3. 刷經修改過的zImage(root@ubuntu)
4. 安裝手機終端機
5. 掛載usb驅動模組 insmod usbcore.ko , insmod ehci-hcd.ko
6. 掛載輸入驅動模組 insmod usbhid.ko

插上外接電源的usb hub的鍵盤

2010年11月2日 星期二

Android drawable 轉 bitmap

Bitmap drawableToBitmap(Drawable drawable) {
 Bitmap.Config mConfig;
 if(drawable.getOpacity() != PixelFormat.OPAQUE){
  mConfig=Bitmap.Config.ARGB_8888;
 }else{
  mConfig=Bitmap.Config.RGB_565; 
 }
 Bitmap bitmap = Bitmap.createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),  mConfig);
 Canvas canvas = new Canvas(bitmap);
 drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
 drawable.draw(canvas);
 return bitmap;
}


或者你也可以這樣:)

((BitmapDrawable)res.getDrawable(R.drawable.youricon)).getBitmap();

Android bitmap轉drawable

要怎麼把bitmap轉成drawable呢?


Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a01);
Drawable mDrawable = new BitmapDrawable(mBitmap);

2010年10月29日 星期五

Android要怎麼做出透明Activity

首先在
在res/values/中加入一個新的檔案

styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>
</resources>


在res/values/中加入一個新的檔案

color.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="transparent">#00000000</color>
</resources>



最後在AndroidManifest中,Activity設定修改Theme 為 @style/Theme.Transparent

2010年10月20日 星期三

Android儲存在SD卡的圖片要怎麼顯示在相簿

因為相簿預設是在插拔USB時才會檢查有無新的圖片
所以需要手動讓他檢查,在你的程式碼中加入這行

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));

 他就會去掃你的SD卡中有無新的圖片

2010年10月18日 星期一

Android webView截圖顯示在imageView上

Picture picture = webView.capturePicture();
int weight = picture.getWidth(); 
int height = picture.getHeight(); 
if (weight > 0 && height > 0){
        Bitmap bitmap = Bitmap.createBitmap(weight, height,
        Bitmap.Config.ARGB_8888);
 Canvas canvas = new Canvas(bitmap);
 picture.draw(canvas);
 mImageView.setImageBitmap(bitmap); 
}

也可以任意的對bitmap作影像處裡達到需要的效果

2010年7月9日 星期五

Android WebView讀取大圖模糊問題

有鑒於自己花了兩天的時間研究卻自然解決,我一定要上來PO個文讓搜尋引擎找到這篇文章。


這是Android原本就有的BUG,只要把版本昇到2.2問題就解決了...

如果你的設備是2.2以下的怎麼辦,有幾個方法:


1.將圖檔下載到SDCARD中,在用ImageView顯示

2.一開始就把圖在伺服器端切好在下載下來





補個X

2010年5月4日 星期二

[Android為什麼]怎麼製作透明的canvas

一般我們都會用


 @Override
 protected void onDraw(Canvas canvas){
     super.onDraw(canvas);
}
來畫要的圖形,但卻沒辦法重疊,所以為了要讓他們可以被重疊,要改成這樣



 @Override
 protected void dispatchDraw(Canvas canvas){
     super.dispatchDraw(canvas);
}

進階閱讀:http://blog.pocketjourney.com/2008/03/15/tutorial-1-transparent-panel-linear-layout-on-mapview-google-map/

2010年5月3日 星期一

[Android為什麼]什麼是Layout?

Layout 是一繼承ViewGroup的類別,功能是用來將子元件配置在畫面上
Andrioid SDK內建了一些Layout,方便設計UI,以下就簡介常用的Layout


  • FrameLayout
    將View顯示在左上角,增加多個View的時候,後加的View會蓋在先加的上面。
    例如:背景貪食蛇,先加入相機View,在加入蛇的View。

2010年3月18日 星期四

[Android AP]透明貪食蛇

Camera surfaceView Snake

遊戲畫面






有興趣的可以從下面的QRcode下載:P

歡迎跟我討論Android相關的各種問題 :D

2010年3月3日 星期三

Android Developer Lab 2010

每個人送一隻Nexus One!
真的是太爽啦~~~

等我玩上手再來寫心得文~

2010年3月1日 星期一

Android Market開啟!

http://www.android.com/market/

今天跑了一趟銀行,把信用卡申請下來,
終於可以開始玩Android Market了(灑小花)
到底我的軟體會有多少人玩呢~讓我們繼續看下去...