写了一个用ViewPager来实现页面滑动的代码(也是从网上看来的代码,自己稍微修改了下),但是图片放在ImageView会自动放大(图片大小没有容器那么大),不知道有什么办法不让图片放大呢?
具体细节可参看如下:XML资源文件
主资源文件:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
<LinearLayout
    android:id="@+id/viewGroup"
    android:layout_width="fill_parent"
    android:layout_height="20dp"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >
</LinearLayout> <!--android:layout_marginBottom="30dp"-->
    
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />    </LinearLayout>item1.xml,item2.xml,item3.xml,item4.xml,item5.xml,item6.xml都是一样的,呵呵:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        android:background="@drawable/guide01" >
    </ImageView></LinearLayout>

解决方案 »

  1.   

    代码:
    package com.example.myfirstapp;import java.util.ArrayList;import android.app.Activity;
    import android.os.Bundle;
    import android.os.Parcelable;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.view.Window;
    import android.widget.ImageView;public class MainActivity extends Activity {
    ViewPager viewPager;
    ArrayList<View> list;
    ViewGroup main, group;
    ImageView imageView;
    ImageView[] imageViews; @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    LayoutInflater inflater = getLayoutInflater();
    list = new ArrayList<View>();
    list.add(inflater.inflate(R.layout.item1, null));
    list.add(inflater.inflate(R.layout.item2, null));
    list.add(inflater.inflate(R.layout.item3, null));
    list.add(inflater.inflate(R.layout.item4, null));
    list.add(inflater.inflate(R.layout.item5, null));
    list.add(inflater.inflate(R.layout.item6, null)); imageViews = new ImageView[list.size()];
    ViewGroup main = (ViewGroup) inflater.inflate(R.layout.activity_at_games_launcher, null);
    ViewGroup group = (ViewGroup) main.findViewById(R.id.viewGroup);
    viewPager = (ViewPager) main.findViewById(R.id.viewPager); for (int i = 0; i < list.size(); i++) {
    imageView = new ImageView(MainActivity.this);
    //imageView.setLayoutParams(new LayoutParams(10,10));
    //imageView.setPadding(10, 0, 10, 0);
    imageViews[i] = imageView;
    if (i == 0) {
    imageViews[i].setBackgroundResource(R.drawable.page_indicator_focused);
    } else {
    imageViews[i].setBackgroundResource(R.drawable.page_indicator);
    }
    group.addView(imageView);
    } setContentView(main); viewPager.setAdapter(new MyAdapter());
    viewPager.setOnPageChangeListener(new MyListener());
    } class MyAdapter extends PagerAdapter { @Override
    public int getCount() {
    return list.size();
    } @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
    return arg0 == arg1;
    } @Override
    public int getItemPosition(Object object) {
    // TODO Auto-generated method stub
    return super.getItemPosition(object);
    } @Override
    public void destroyItem(View arg0, int arg1, Object arg2) {
    // TODO Auto-generated method stub
    ((ViewPager) arg0).removeView(list.get(arg1));
    } @Override
    public Object instantiateItem(View arg0, int arg1) {
    // TODO Auto-generated method stub
    ((ViewPager) arg0).addView(list.get(arg1));
    return list.get(arg1);
    } @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {
    // TODO Auto-generated method stub } @Override
    public Parcelable saveState() {
    // TODO Auto-generated method stub
    return null;
    } @Override
    public void startUpdate(View arg0) {
    // TODO Auto-generated method stub } @Override
    public void finishUpdate(View arg0) {
    // TODO Auto-generated method stub }
    } class MyListener implements OnPageChangeListener { @Override
    public void onPageScrollStateChanged(int arg0) {
    // TODO Auto-generated method stub } @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub } @Override
    public void onPageSelected(int arg0) {
    for (int i = 0; i < imageViews.length; i++) {
    imageViews[arg0].setBackgroundResource(R.drawable.page_indicator_focused);
    if (arg0 != i) {
    imageViews[i].setBackgroundResource(R.drawable.page_indicator);
    }
    } } }
    }
      

  2.   

    补充说明:
    放在item1~6.xml中ImageView中的图片,尺寸比屏幕小,每次显示的时候都会放大到屏幕大小,我不希望它放大,该怎么操作?
    请大虾们不吝赐教!
      

  3.   

    自己搞定了,呵呵。
    对item1~6.xml调整成如下内容:
    xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:orientation="vertical" >    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/guide01" >
        </ImageView></LinearLayout>另外,将图片从drawable-hdpi移动到drawable文件夹下。
      

  4.   

    前面的问题已经解决,但是又没有回过贴,分给不出去,刚好又有一个问题,顺便在这里问一下。
    没办法,可用分少,节约点用啊现在的新问题是,怎么在自己的程序里面调用 Google App Store(Play Store)应用程序?
    我把系统安装的apk包名都打印出来了,似乎没有,请教各位大大,该怎么弄呢?
      

  5.   

    确定系统有app store应用吗?
      

  6.   

    确定是有的,因为有个可以在系统Launcher应用程序界面的可以点击进去。但是奇怪的是,我把系统的安装的包打印了一下,如下:
    android
    android.rk.RockVideoPlayer
    android.rockchip.update.service
    com.DeviceTest
    com.adobe.flashplayer
    com.android.Win8Widget
    com.android.apkinstaller
    com.android.backupconfirm
    com.android.bluetooth
    com.android.browser
    com.android.calculator2
    com.android.calendar
    com.android.certinstaller
    com.android.chrome
    com.android.contacts
    com.android.defcontainer
    com.android.deskclock
    com.android.email
    com.android.exchange
    com.android.facelock
    com.android.galaxy4
    com.android.gallery3d
    com.android.htmlviewer
    com.android.inputdevices
    com.android.inputmethod.latin
    com.android.inputmethod.pinyin
    com.android.keychain
    com.android.launcher
    com.android.magicsmoke
    com.android.music
    com.android.musicfx
    com.android.musicvis
    com.android.noisefield
    com.android.packageinstaller
    com.android.phasebeam
    com.android.phone
    com.android.providers.applications
    com.android.providers.calendar
    com.android.providers.contacts
    com.android.providers.downloads
    com.android.providers.downloads.ui
    com.android.providers.drm
    com.android.providers.media
    com.android.providers.partnerbooks
    com.android.providers.settings
    com.android.providers.telephony
    com.android.providers.userdictionary
    com.android.provision
    com.android.quicksearchbox
    com.android.rk
    com.android.rk.mediafloat
    com.android.rockchip.wallpaper
    com.android.settings
    com.android.sharedstoragebackup
    com.android.smspush
    com.android.soundrecorder
    com.android.systemui
    com.android.vending
    com.android.videoeditor
    com.android.vpndialogs
    com.android.wallpaper
    com.android.wallpaper.holospiral
    com.android.wallpaper.livepicker
    com.atgames.genesis
    com.atgames.menu.cloud
    com.atgames.menu.hal
    com.atgames.menu.help
    com.atgames.sms
    com.example.atgameslauncher
    com.example.guge
    com.google.android.apps.maps
    com.google.android.apps.uploader
    com.google.android.backup
    com.google.android.ears
    com.google.android.feedback
    com.google.android.gm
    com.google.android.gms
    com.google.android.googlequicksearchbox
    com.google.android.gsf
    com.google.android.gsf.login
    com.google.android.location
    com.google.android.marvin.talkback
    com.google.android.onetimeinitializer
    com.google.android.partnersetup
    com.google.android.setupwizard
    com.google.android.street
    com.google.android.syncadapters.books
    com.google.android.syncadapters.calendar
    com.google.android.syncadapters.contacts
    com.google.android.talk
    com.google.android.tts
    com.google.android.voicesearch
    com.ijinshan.ShouJiKong.AndroidDaemon
    com.livecirrus.newsportal
    com.qihoo.appstore
    com.svox.pico
    jp.co.omronsoft.openwnn
    但是没有找到Play Store的包名。我列举系统包的代码如下:
    private void getPackageInfos() {
    mPackageManager = getPackageManager();
    mPackageInfoList = mPackageManager.getInstalledPackages(0);
    }private void showPackageInfos() {
    for (int i = 0; i < mPackageInfoList.size(); i++) {
    PackageInfo pi = (PackageInfo) mPackageInfoList.get(i);
    Log.v("[***PACKAGE***]", pi.packageName);
    //String name = mPackageManager.getApplicationLabel(pi.applicationInfo).toString();
    }
    }调用代码片段为:
    getPackageInfos();
    showPackageInfos();
      

  7.   

    com.android.vending这个就是Play Store的包名。
        private void func() {
            ComponentName componet = new ComponentName("com.android.vending", "com.android.vending.AssetBrowserActivity");        Intent i = new Intent();
            i.setComponent(componet);
            startActivity(i);
        }
    这个方法就可以启动Play Store了。
    推广开来,这个方法可以启动任何一个应用,你可以从PackageManager里获取到应用的包名和主Activity的类名,把这两个参数传给ComponentName就可以了。
      

  8.   

    这段时间忙,不好意思,结贴来迟了,呵呵。下面贴上根据包名获取主Activity名的代码片段,供以后有需要的童鞋们参考。
    感谢各位的帮助,谢谢!PackageManager mPackageManager;
    List<PackageInfo> mPackageInfoList;调用片段:
    getPackageInfos();
    showPackageInfos();实现片段:
    private void getPackageInfos() {
    mPackageManager = getPackageManager();
    mPackageInfoList = mPackageManager.getInstalledPackages(0);
    }private void showPackageInfos() {
    Log.v("<AtGamesLauncher>: ", "(PACKAGE NAME LIST)");
    for (int i = 0; i < mPackageInfoList.size(); i++) {
    PackageInfo pi = (PackageInfo) mPackageInfoList.get(i);
    Log.v("<AtGamesLauncher>: [***PACKAGE***]", 
    pi.packageName + ':' + getPkgMainActivityName(pi.packageName));
    }
    }