재사용 가능한 위젯을 만들고 싶습니다. 표준 요소의 서수 합성이어야합니다. 가장 좋은 방법은 무엇입니까? 아래는 현재 사용하고있는 코드 샘플이지만 좀 더 우아 할 수도 있습니다. 또한 아래 샘플은 런타임에서 완벽하게 실행되지만 Eclipse의 시각적 편집기가 예외를 던지고 있습니다 (현재로서는 저에게 문제가되지 않습니다). 복합 소재를 만드는 데 권장되는 방법이 있습니까? 조각을 사용해야합니까?컴포지트 위젯 - 원하는 방식은 무엇입니까?
public class MyComposite extends LinearLayout {
private ImageView m_a1;
private ImageView m_a2;
private ImageView m_w1;
private ImageView m_w2;
private ImageView m_w3;
private ImageView m_w4;
public CallBackSlider(final Context context) {
this(context, null);
}
public CallBackSlider(final Context context, final AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.my_composite, this, true);
setupViewItems();
}
private void setupViewItems() {
m_a1 = (ImageView) findViewById(R.id.A1Img);
m_w1 = (ImageView) findViewById(R.id.Wave1Img);
m_w2 = (ImageView) findViewById(R.id.Wave2Img);
m_w3 = (ImageView) findViewById(R.id.Wave3Img);
m_w4 = (ImageView) findViewById(R.id.Wave4Img);
m_a2 = (ImageView) findViewById(R.id.A2Img);
resetView();
}
private void resetView() {
m_w1.setAlpha(0);
m_w2.setAlpha(0);
m_w3.setAlpha(0);
m_w4.setAlpha(0);
}
}
레이아웃 XML :
이<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyComposite"
... >
<ImageView
android:id="@+id/A1Img"
android:src="@drawable/a1"
...
/>
<ImageView
android:id="@+id/Wave1Img"
...
android:src="@drawable/wave1" />
<ImageView
android:id="@+id/Wave2Img"
...
android:src="@drawable/wave2" />
<ImageView
android:id="@+id/Wave3Img"
...
android:src="@drawable/wave3" />
<ImageView
android:id="@+id/Wave4Img"
...
android:src="@drawable/wave4" />
<ImageView
android:id="@+id/EarImg"
...
android:src="@drawable/a2" />
</LinearLayout>
그럼 당신은 이런 식으로 다른 레이아웃에서 사용할 수 있습니다 :
...
<your.package.MyComposite
android:id="@+id/mc1"
...
/>
...
그리고 MyComposite 클래스의 Java 코드뿐만 아니라 인스턴스에서 사용합니다.
병합 된 위젯이 무엇인지 찾으려고합니다. 좋은 설명을 가르쳐 주시겠습니까? 왜 그것이 좋고 언제 사용해야하는지. –
예를 들어, 버튼을 클릭하면 항상 토스트 메시지를 만들거나 다른 스 와이프 애니메이션을 가진 갤러리가 필요합니다. 따라서이 상황에서는 갤러리 또는 버튼을 확장하여 사용자 정의보기를 만들어 yor 활동에서 쉽게 사용할 수 있습니다. 그러나 귀하의 질문에 당신은 standat 행동과 위젯 그룹이 필요합니다. 그래서 당신은 그들을 병합하여 당신의 활동에 사용해야합니다. – Talha