मैं एक अर्ध-पारदर्शी डेमो स्क्रीन बनाने की कोशिश कर रहा हूं जो केवल तभी लॉन्च होती है जब कोई उपयोगकर्ता पहली बार मेरा एप्लिकेशन इंस्टॉल करता है। यहां पल्स न्यूज़ ऐप का एक उदाहरण दिया गया है:
गैलेक्सी नेक्सस
नेक्सस वन
एक 'टैप-टू-आउट' सुविधा के बजाय, मैं चाहता हूं कि उपयोगकर्ता ऐसे पारदर्शी डेमो पृष्ठों के एक जोड़े के माध्यम से स्वाइप करने में सक्षम हो।
अपने पहले प्रयास के लिए, मैंने ViewPagerIndicator लाइब्रेरी से एक नमूना संशोधित किया । मैंने प्रत्येक पेजर के टुकड़ों के अंदर ImageViews में अर्ध-पारदर्शी PNGs का उपयोग किया। मैंने तब इसे अपनी 'मुख्य गतिविधि' की ऑनक्रैट विधि में 'डेमो एक्टिविटी' के रूप में लॉन्च किया था।
समस्या: 'मुख्य गतिविधि' को पृष्ठभूमि में नहीं देखा जा सकता था - इसके बजाय यह सिर्फ काला था। मैं यहाँ समाधान की कोशिश की , लेकिन यह समस्या को ठीक नहीं किया।
क्या इस तरह का कुछ बनाने के लिए एक बेहतर तरीका है, या मैं सही रास्ते पर हूं?
मेरे पास एक और संबंधित प्रश्न भी था जो इस बात पर निर्भर करता है कि इसे कैसे लागू किया जाता है। मैं पाठ और तीर को ओवरले करने की कोशिश कर रहा हूं, जैसे कि वे पृष्ठभूमि में विशेष रूप से UI घटकों पर इंगित करते हैं। पीएनजी का उपयोग करने से जिसमें पाठ और तीर होते हैं, यह संभावना है कि यह विभिन्न उपकरणों पर ठीक से स्केल नहीं करेगा। यानी, पृष्ठभूमि में सही UI घटक के लिए तीर आवश्यक रूप से इंगित नहीं हो सकता है। क्या इस समस्या से निपटने का कोई तरीका है?
धन्यवाद!
यहाँ पहले प्रयास के लिए मेरा कोड है:
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);
}
}