SORU
17 AĞUSTOS 2012, Cuma


Nasıl bir Android uygulaması için şeffaf bir demo ekran oluşturmak mı?

Bir kullanıcı benim ilk uygulama yükler sadece başlatılan yarı saydam bir demo ekran oluşturmak için çalışıyorum. İşte Darbe Haber uygulamasından bir örnek:

Galaxy Nexus

Example screenshot from Pulse News on Galaxy Nexus

Nexus One

enter image description here

Bir 'için kapat'a dokunun' özelliği, kullanıcı ile böyle şeffaf demo birkaç sayfa tokatlamak mümkün olmak istiyorum. yerine

İlk denemem için, ViewPagerIndicator kütüphaneden bir örnek değiştirdim. Görünüm çağrı ... ... parçalarının her birinin içinde İmageViews, yarı şeffaf PNG kullandım. Ben o zaman bir olarak başlatılan 'demo aktivite' benim onCreate yöntemi 'ana faaliyet'.

Sorun: 'ana faaliyet' arka planda görülebilir değildir - bunun yerine sadece karanlık vardı. here, ama bu sorunu çözmek vermedi çözümleri denedim.

Böyle bir şey yaratmak için daha iyi bir yaklaşım var, ya da doğru yolda mıyım?

Ben de bu hayata ne kadar bağlı olan başka bir ilgili bir soru vardı. Yerleşimi metin için çalışıyor ve arka planda özel UI bileşenleri de işaret eden oklar gibi oldum. Metin ve oklar olan bir PNG kullanarak, düzgün farklı cihazlarda ölçek olacaktır. I. e., okları mutlaka arka planda doğru UI bileşeni işaret edebilir. Bir şekilde bu sorunu çözmek için vardır?

Teşekkürler!

İşte ilk deneme için benim kod:

DemoActivity.java

public class DemoActivity extends FragmentActivity {
    DemoFragmentAdapter mAdapter;
    ViewPager mPager;
    PageIndicator mIndicator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo_activity);

        mAdapter = new DemoFragmentAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
        //mPager.setAlpha(0);

        UnderlinePageIndicator indicator = (UnderlinePageIndicator)findViewById(R.id.indicator);
        indicator.setViewPager(mPager);
        indicator.setFades(false);
        mIndicator = indicator;
    }

}

DemoFragmentAdapter.java

class DemoFragmentAdapter extends FragmentPagerAdapter {
    protected static final int[] CONTENT = new int[] { R.drawable.demo1, R.drawable.demo2, R.drawable.demo3, R.drawable.demo4};

    private int mCount = CONTENT.length;

    public DemoFragmentAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return DemoFragment.newInstance(CONTENT[position % CONTENT.length]);
    }

    @Override
    public int getCount() {
        return mCount;
    }

    public void setCount(int count) {
        if (count > 0 && count <= 10) {
            mCount = count;
            notifyDataSetChanged();
        }
    } }

DemoFragment.java

public final class DemoFragment extends Fragment {
    private static final String KEY_CONTENT = "TestFragment:Content";

    public static DemoFragment newInstance(int content) {
        DemoFragment fragment = new DemoFragment();
        fragment.mContent = content;
        return fragment;
    }

    private int mContent;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if ((savedInstanceState != null) && savedInstanceState.containsKey(KEY_CONTENT)) {
            mContent = savedInstanceState.getInt(KEY_CONTENT);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        ImageView image = new ImageView(getActivity());
        image.setBackgroundResource(mContent);

        LinearLayout layout = new LinearLayout(getActivity());
        layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        layout.setGravity(Gravity.CENTER);
        layout.addView(image);

        return layout;
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(KEY_CONTENT, mContent);
    }
}

CEVAP
30 AĞUSTOS 2012, PERŞEMBE


Farklı aktivite, demo bilgilerini yaz ve aşağıdaki tema verin.

<style name="Transparent" parent="@android:style/Theme.NoTitleBar">
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>      
    <item name="android:backgroundDimEnabled">false</item>
</style>

ActionBarSherlock değiştirmek kullanıyorsun @style/Theme.Sherlock parent eğer.

Bu şeffaf bir aktivite verecektir, altındaki etkinliğini görmek mümkün olacak.

Şimdi saydam bir arka plan çok istediğini tahmin ediyorum.

Xml düzeni (şeffaf etkinlik) ekleyin:

android:background="#aa000000" 

Rengini tanımlamak son 6 hanesi: 000000 siyah.

İlk 2 opaklığı tanımlayın: 00 100% opak ff 100% şeffaf. Bu yüzden seçim arasında bir şey.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010