ฉันกำลังพยายามสร้างหน้าจอสาธิตแบบกึ่งโปร่งใสที่จะเปิดขึ้นเมื่อผู้ใช้ติดตั้งแอปพลิเคชันของฉันครั้งแรกเท่านั้น นี่คือตัวอย่างจากแอป Pulse News:
Galaxy Nexus
Nexus One
แทนที่จะใช้คุณสมบัติ 'แตะเพื่อปิด' ฉันต้องการให้ผู้ใช้สามารถปัดผ่านหน้าสาธิตโปร่งใสสองสามหน้าดังกล่าวได้
สำหรับความพยายามครั้งแรกของฉันฉันแก้ไขตัวอย่างจากViewPagerIndicatorไลบรารีฉันใช้ PNG กึ่งโปร่งใสใน ImageViews ภายในส่วนของเพจเจอร์แต่ละมุมมอง จากนั้นฉันก็เปิดตัวสิ่งนี้เป็น 'กิจกรรมสาธิต' ในเมธอด onCreate ของ 'กิจกรรมหลัก' ของฉัน
ปัญหา: ไม่สามารถมองเห็น 'กิจกรรมหลัก' ในพื้นหลัง แต่เป็นเพียงสีดำ ฉันลองแก้ปัญหาที่นี่แล้ว แต่ไม่สามารถแก้ไขปัญหาได้
มีแนวทางที่ดีกว่าในการสร้างสิ่งนี้หรือฉันมาถูกทางแล้ว?
ฉันยังมีคำถามอื่นที่เกี่ยวข้องซึ่งขึ้นอยู่กับวิธีการใช้งาน ฉันพยายามวางซ้อนข้อความและลูกศรเพื่อให้ชี้ไปที่ส่วนประกอบ UI เฉพาะในพื้นหลัง การใช้ PNG ที่มีข้อความและลูกศรมีแนวโน้มว่าจะปรับขนาดได้ไม่เหมาะสมในอุปกรณ์ต่างๆ กล่าวคือลูกศรอาจไม่จำเป็นต้องชี้ไปที่ส่วนประกอบ 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);
}
}